软件管理

软件的组成
  1)二进制可执行文件(可执行文件)
  2)库文件(就是这个可执行文件,需要的库文件)
  3)配置文件
       用来配置软件的功能的。
  4)帮助文件
 
软件包管理器
  作用:
    用来管理软件的制作、安装、卸载、查找、更新
    能RPM够生成1个数据库(记录每个软件的安装位置等信息)
   
  种类:
    1)后端工具
       直接管理软件包的工具:
       RedHat, CentOS, SUSE:  使用 RPM
       Debian:                使用 dpt
 
       特别注意:
       软件的依赖关系:
         软件A的执行过程中,需要使用软件B,就称为A依赖B, A->B
         循环依赖: A ->B-1.2 -> C -> A
                   A ->B-1.1 -> C-1.5 
   
    2) 前端工具
       能够自动解决的管理软件包之间的依赖关系。
       前端工具,是基于后端工具的,能够自动解决软件包的依赖关系
 
       RedHat, CentOS:  使用yum
       Ubuntu(个人用户常常使用): apt-get
    
     
补充:
软件的安装方式:
  1)使用软件的源代码,手动配置,编译,安装
  2)使用软件包(rpm软件包,dpt软件包)
              
 如果已经有了软件包: apache-2.2.1-el.x86_64.rpm
 就可以直接使用 rpm工具
 # rpm -i apache-2.2.1-el.x86_64.rpm
 安装时,可能提示你还需要安装该软件包的依赖包,而导致安装失败
 
 此时,就应该考虑使用对应的前端工具(yum或者apt-get)
 
RPM工具
1)rmp包的命名
   例如:qq-9.5.1-2.el5.i586.rpm
         软件名-主版本号.子版本号.源代码的发行号-rmp包的发行号.硬件平台.rpm
         qq       9        5         1               2.el5     i586
 
        
   软件包的发行号:
     可能包含平行信息。
     2.el5   表示是对于红帽企业版5.x发行,第2次发行
     2.el6            
    
   硬件平台
     i586   Intel586芯片 
     
  例如:
  gcc3.4-3.4.5-alt16.x86_64.rpm
  该命名不规范。
 
2) rpm工具的基本使用
 
2.1)安装
# rpm -i 包名
  安装指定的软件包
 
# rpm -ivh  包名
  安装指定的软件包
  -v:显示安装的详细过程
  -vv: 显示安装的更加详细的过程
  -h 显示安装的进度(用#表示,一个#表示2%的进度)
 
2.2) 查询类
# rpm -q 包名
  查询指定的包是否已经安装
  如果某个软件是通过源码安装的,那么用rpm是查询不到的。
 
# rpm -qa
  查询当前系统已经安装的所有软件包
 
# rpm -qi  包名(软件名)
  查询指定软件包(已经安装的)说明信息(描述信息)
 
# rpm -ql 包名
  查询指定的软件包,所生成的文件
 
# rpm -qf 路径/文件名
  查询指定的文件是哪个软件包所安装的。
 
# rpm  -qc 包名
  查询指定的软件包的配置文件
  需要完整的包名。
  例如:
  rpm -qc yum-3.2.29-40.el6.centos.noarch
 
# rpm -qd 包名
  查询指定的软件包的帮助文件。
   
# rpm -q --scripts 包名
  查询指定的软件包的脚本文件。
 
# rpm -qpl 包名
  查询如果安装某个软件包后,将要生成哪些文件(还没有安装)
   
# rpm -qpi 包名
  查询指定的软件包(还没有安装的)的说明信息。
 
2.3)升级
# rpm -Uvh  包名
  如果指定的包已经安装,那么就对这个软件包升级。
  如果还没有安装,那么就安装!
 
# rpm -Fvh  包名
  如果指定的包已经安装,那么就对这个软件包升级。
  如果还没有安装,那么就什么也不做。
 
2.4)卸载
rpm -e 包名
如果这个软件包,有依赖的软件包,那么将提示相关的依赖包,而拒绝卸载。
如果这个软件包,没有任何依赖包,才会卸载。
 
rpm -e --nodeps  包名
卸载指定的软件包,而不管依赖关系。
 
 
2.4) 校验
# rpm -V 包名
检查指定的软件包是否被非法修改。
 
2.5)数据库
rpm  --rebuilddb 
重建rpm软件管理的数据库
 
rpm --initdb
初始化rpm软件管理的数据库
 
yum软件管理
1) 介绍:yum是一个后端管理工具,是基于rpm
         能够从指定的服务器自动下载所需要的软件包并安装。
         能够自动处理软件包的依赖关系,而且能自动下载所依赖的软件包,并安装。
    
2)基本使用
# yum install httpd
  安装指定的软件包
  安装过程中,会提示你是否确定要安装。
 
# yum install httpd  -y
  安装指定的软件包
  安装过程中,不再提示确认。
 
# yum list 
  搜索当前可安装的(不是指已安装的)的所有软件包
 
# yum list httpd
  从当前的yum仓库(软件源)中,是否有指定软件包
 
# yum  search http
  和yum list的作用类似,
  只要软件包的名称中包含指定名称,就把结果列出来。
 
# yum  provides  /bin/ls
  查询指定的文件是哪个软件包安装的。
 
# yum remove 包名
  卸载指定的软件包,
  注意,将同时卸载所有的依赖软件包
  注意,一般情况下,尽量不要使用该命令。
  可以考虑使用 rpm  -e   包名
               rpm  -e  --nodeps 包名
  
# yum update 包名
  更新指定的软件包
 
# yum grouplist 
  显示当前系统可以安装的所有组包。
   
  补充:组包,包含多个软件包。
 
# yum groupinfo 组包名
  查询指定的组包的描述信息
 
# yum groupremove 组包名
  卸载指定的组包
 
# yum groupupdate 组包名
  更新指定的组包
 
# yum repolist
  列出当前的所有可以使用的软件库(软件仓库)
 
# yum repolist all
  列出所有的软件仓库。(包括被禁用的软件仓库)
 
# yum --enablerepo=软件仓库的ID  install 包名
  从指定的软件仓库中,安装指定的软件包
  注意:软件仓库的ID,就是.repo文件中的模块名
 
# yum --enablerepo=local  --disablerepo=base,extra,updates  install LNMP
  从local软件仓库中安装,而且不从base,extra,updates这些软件仓库中安装指定的软件包LNMP
  
# yum clean all
  删除yum的所有缓存。
  使用场合:当改变了yum源改变以后,就应该删除本地的缓存。  
 
  注意:软件包安装完成后,这个软件包将保存在缓存中。(默认情况下,不保存缓存的。)
 
# yum history
  查看yum的历史记录
 
创建自己的yum源
yum服务器端的配置 1) 创建1个目录,用来存放rpm包 # mkdir -p /root/yum 2) 把需要的rpm包存放到该目录 3) 安装createrepo createrepo是专门用户创建软件仓库的工具。 # yum install createrepo -y 4)初始化软件仓库的索引文件 也就是,对/root/yum/中的所有rpm包,建立1个索引文件。 # createrepo -pdo /root/yum /root/yum 对/root/yum下的所有rpm包,建立索引(repodata),而且把这个索引保存在/root/yum目录下。 补充: 以后,如果在/root/yum目录中添加了新的rpm包, 就应该更新这个索引文件(repodata) # createrepo --update /root/yum 5) 让yum服务器提供yum服务 可是使用Apache的web服务 更简单的办法,是使用python的http模块。 python -m SimpleHTTPServer 80 & > /dev/null & 以后台的方式运行python的http模块。 客户端的配置 在客户端配置自己的yum仓库 即在/etc/yum.repos.d/下创建.repo文件。 # vim pzj.repo ---------------------------------- [pzj-file] name=pzj server's file packages baseurl=http://192.168.1.4 enabled=1 gpgcheck=0 --------------------------------- 注意:baseurl支持:http:// ftp:// file://(本地文件系统) 例如:baseurl=file:///root/packages baseurl如果有多个链接,必须用如下格式: baseurl=http://192.168.1.4 http://192.168.2.5 htpp://192.18.1.11 至此,就可以在客户端直接使用. 补充: 临时禁止某些软件仓库 # yum install gcc --enablerepo=pzj-file --disablerepo=base,extra,updates 永久禁止某些软件仓库 修改该软件仓库的enalbed的值。 在相应的.repo文件中修改。 例如:CentOS-Base.repo -------------------------------------------------------- [base] name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 enabled=0 ------------------------------------------------------------- enabled=0表示禁止使用这个软件仓库。 gpgcheck表示是否检查软件包的合法性。 yum的配置文件 /etc/yum.conf 注意,这个文件是对yum的客户端有效 cachedir 表示缓存目录 keepcache 表示是否使用缓存。 =0时,不使用缓存。 =1时,使用缓存,即软件下载并安装后,该软件包保存在缓存目录中。 默认值为0 logfile 日志文件的位置 exactarch 表示是否只安装和自己架构正确匹配的软件包 gpgcheck 是否对软件包进行有效性和安全性检查。 plugins 是否使用插件

  

原文地址:https://www.cnblogs.com/The-day-of-the-wind/p/12063779.html