码迷,mamicode.com
首页 > 其他好文 > 详细

软件管理

时间:2017-12-02 23:17:41      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:zl

程序:(操作系统启动需要使用到的程序,这些目录不能挂载额外的分区,必须在根文件系统的分区上)

    二进制程序(/bin、/sbin)

    库(/lib)

    配置文件(/etc)

    帮助文件(/usr/share/man)


/usr/:bin、sbin、lib----------操作系统核心功能,可以单独分区

/usr/local/:bin、sbin、lib、[etc]、[man]-----------独立王国,第三方软件的一般目录


/proc、/sys:不能单独分区,默认为空;必不可少,内核自我管理的系统文件

/dev:设备,不能单独分区


软件包管理器的核心功能:

  制作软件包

  安装、卸载、升级、查询、校验


RPM:Redhat Package Manager-------------依赖关系

前端工具:yum,apt-get

后端工具:RPM,dpt


RPM包名格式:

  name-version-release.arch.rpm

  bind-major.minor.release-release.arch.rpm

主版本号:重大改进

次版本号:某个子功能发生重大变化

发行号:修正了部分bug,调整了一点功能


安装:

  # rpm -ivh /path/to/somewhere

    -i:install

    -v:显示详细过程

    -h:显示进度

    --nodeps:忽略依赖关系

    --replacepkgs:重新安装,替换原有安装

    --force:强行安装,可以实现重装或降级

查询:

  # rpm -q PACKAGE_NAME    (查询指定的包是否已经安装)

  # rpm -qa    (查询已经安装的所有包)

  # rpm -qi PACKAGE_NAME    (查询指定包的说明信息)

  # rpm -ql PACKAGE_NAME    (查询指定包安装后生成的文件列表)

  # rpm -qc PACKAGE_NAME    (查询指定包安装的配置文件)

  # rpm -qd PACKAGE_NAME    (查询指定包安装的帮助文件)

  # rpm -q --scripts PACKAGE_NAME    (查询指定包中包含的脚本)

  # rpm -qf /path/to/somefile    (查询指定的文件是由哪个rpm包安装生成的)

  # rpm -qpi /path/to/package_file    (查询某尚未安装的rpm包的说明信息及安装后会生成的文件)

升级:

  # rpm -Uvh /path/to/package_file    (如果装有老版本的,则升级;否则,则安装)

  # rpm -Fvh /path/to/package_file    (如果装有老版本的,则升级;否则,退出)

   --oldpackage:降级

卸载:

  # rpm -e PACKAGE_NAME

校验:

  # rpm -V PACKAGE_NAME

重建数据库:

  # rpm

    --rebuilddb:重建数据库,一定会重新建立

    --initdb:初始化数据库,没有才建立,有就不用建立

检验来源合法性,及软件完整性:

  加密类型:

    对称:加密解密使用同一个密钥

    公钥:一对儿密钥,公钥,私钥,公钥隐含于私钥中,可以提取出来,并公开出去

    单向:

  # ls /etc/pki/rpm-gpg/    (RPM-GPG-KEY-redhat-release)

  # rpm -K /path/to/package_file

    dsa,gpg:验证来源合法性,也即验证签名;可以使用--nosignature略过此项

    sha1,md5:验证软件包完整性;可以使用--nodigest略过此项

  # rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release    (导入密钥文件)


YUM

配置文件-------yum仓库

  创建yum仓库:

    # createrepo [options] DIRECTORY

  定义repo文件:

    [Repo_Name]

    name=Description

    baseurl=

        ftp://

        http://

        file:///:本地

    enabled=(1|0):设置此源是否可用,1为可用,0为禁用

    gpgcheck=(1|0):设置此源是否校验文件,1为校验,0为不校验

  # yum [options] [command] [package...]

    -y:自动回答yes

    install:安装

    list:列表

        all

        available:可用的,仓库中有但尚未安装的

        installed:已经安装的

        updates:可用的升级

    clean:清理缓存

         [ packages | headers | metadata | dbcache | all ]

    repolist:显示repo列表及其简要信息

        all

        enabled:默认

        disabled

    update:升级

    update-to:升级为指定版本

    remove|erase:卸载

    provides|whatprovides:查看指定的文件或特性是由哪个包安装生成的


编译安装的三步骤:

前提:准备开发环境(编译环境)

安装

  # tar

  # cd

  # ./configure    (让用户选定编译特性;检查编译环境)

    --prefix=/path/to/somewhere

    --sysconfdir=/path/to/conffile_path

  # make

  # make install

修改PATH环境变量,以能够识别此程序的二进制文件路径

  修改/etc/profile文件

  在/etc/profile.d/目录建立一个以.sh为名称后缀的文件,在里面定义export PATH=$PATH:/path/to/somewhere

默认情况下,系统搜索库文件的路径/lib,/usr/lib;要增添额外搜寻路径

  在/etc/ld.so.conf.d/中创建以.conf为后缀名的文件,而后把要增添的路径直接写至此文件中

  # ldconfig    (通知系统重新搜寻库文件)

    -v:显示重新搜寻库的过程

头文件:输出给系统

  默认:/usr/include

  增添头文件搜寻路径,使用链接进行

man文件路径:安装在--prefix指定的目录下的man目录:/usr/share/man

  man -M /path/to/man_dir command

  在/etc/man_db.config中添加一条MANPATH


# netstat 

    -r:显示路由表

    -n:以数字方式显示

    -t:建立的tcp连接

    -u:显示udp连接 

    -l:显示监听状态的连接

    -p:显示监听指定套接字的进程的进程号与进程名








软件管理

标签:zl

原文地址:http://blog.51cto.com/zjing1027/2046835

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!