Linux软件包管理

ygfb 9年前

Linux软件包管理:

在讲解如何使用rpm,yum来管理软件包前,我们先来看一个很重要的知识点,如何挂在光盘。

实验环境下,首先要将CentOS安装镜像光盘载入,如下截图:

注意: 此时CentOS系统处于已启动状态.

挂载光盘:

[root@localhost ~]# mkdir /mnt/cdrom  [root@localhost ~]# mount /dev/cdrom /mnt/cdrom/  mount: /dev/sr0 is write-protected, mounting read-only

另外接下来讲解软件包的管理,我们将以 sudo-1.8.6p7-13.el7.x86_64.rpm(sudo命令用来获取临时的root权限,为系统缺省装) 为例讲解。

RPM包管理:

RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的"添加/删除程序". 

(1) 卸载

命令: rpm -e [rpm软件包名称简写]  举例:  [root@localhost ~]# rpm -e sudo  [root@localhost ~]# rpm -evh sudo     #显示卸载进度

注意: 如果与其他软件包有依赖关系,卸载时会产生提示信息,可使用 --nodeps 强行卸载.

(2) 安装

命令: rpm -ivh [rpm软件包名称全写]  说明: ivh: 安装显示安装进度 --install --verbose --hash

我们将从CentOS系统关盘安装sudo-1.8.6p7-13.el7.x86_64.rpm软件包,首先要完成上述挂载光盘

[root@localhost home]# cd /mnt/cdrom/  [root@localhost cdrom]# ls  CentOS_BuildTag  EULA  images    LiveOS    repodata              RPM-GPG-KEY-CentOS-Testing-7  EFI              GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL  [root@localhost cdrom]# cd Packages/  [root@localhost Packages]# ls | grep sudo    #找到sudo的rpm软件包  sudo-1.8.6p7-13.el7.x86_64.rpm  [root@localhost Packages]# rpm -ivh sudo-1.8.6p7-13.el7.x86_64.rpm    #安装sudo的rpm软件包  Preparing...                          ################################# [100%]  Updating / installing...     1:sudo-1.8.6p7-13.el7              ################################# [100%]

注意: CentOS-7系统将系统安装时缺省的软件包放到了/Packages目录,而CentOS-7之前的版本将自带的软件包放置于/CentOS目录,本节中我们以CentOS-7为例

(3) 查询

命令: rpm -q [rpm软件包名称简写]  选项:  -a    查询所有已安装的软件包  -f    查询文件所属软件包  -p    查询软件包    -i    显示软件包信息  -l    显示软件包中的文件列表  -d    显示被标注为文档的文件列表  -c    显示被标注为配置文件的文件列表  查询案例:  1.查询文件隶属的软件包: rpm -qf  2.查询软件包信息: rpm -qi、rpm -qip(i表示information, p表示package)  3.查询软件包安装文件: rpm -ql、rpm -qlp(l表示list, list files in package)  4.查询软件包帮助文档: rpm -qd(d表示document files)  5.查询软件包配置文件: rpm -qc(c表示config files)  举例:  [root@localhost Packages]# rpm -q sudo  sudo-1.8.6p7-13.el7.x86_64

rpm其他安装选项:

--excludedocs    不安装软件包的文档文件  --prifix PTAH    将软件包安装到由PATH指定的路径下  --test           只对安装进行测试,并不实际安装  --replacepkgs    覆盖安装软件包  --replacefiles   出现文件冲突,忽略冲突信息覆盖安装  --nodeps         RPM软件包可能依赖于其他软件包,在安装了特定的软件包之后才能安装该软件包.使用--nodeps强制安装

(4) 升级

命令: rpm -Uvh [软件包名称全写]  举例:  [root@localhost Packages]# rpm -Uvh sudo-1.8.6p7-13.el7.x86_64.rpm

(5) 校验

命令: rpm -V 软件名称  校验结果说明:  S    文件大小  M    文件的权限  5    文件的md5校验值  L    链接文件  T    文件的创建时间  D    设备文件  U    文件的用户  G    文件的用户组

(6) 软件包文件提取

解压所有文件到当前目录:  #rpm2cpio /mnt/cdrom/Packages/initscripts-9.49.24-1.el7.x86_64.rpm | cpio -idv  解压指定文件到当前目录:  #rpm2cpio /mnt/cdrom/Packages/initscripts-9.49.24-1.el7.x86_64.rpm | cpio -idv ./etc/inittab

注意: 为扩展,有了软件包文件的提取,如此我们就可以恢复系统中或软件中被修改、篡改或删除的文件了. 步骤如下:

1.rpm -V命令校验,查看软件包文件的状态;  2.使用rpm2cpio提取指定文件  3.替换或覆盖需要恢复的文件

YUM包管理:

[百度百科] Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装. 

安装: yum install  检测升级: yum check-update  升级: yum update  软件包查询: yum list  软件包信息: yum info  卸载: yum remove  帮助: yum --help, man yum

源代码包安装与卸载:

以proftpd为例来说明源代码包的安装与卸载。

(1)源代码包的安装:  [root@localhost proftpd]# ls  proftpd-1.3.4b.tar.gz  [root@localhost proftpd]# tar -zxvf proftpd-1.3.4b.tar.gz   [root@localhost proftpd]# ls  proftpd-1.3.4b  proftpd-1.3.4b.tar.gz  [root@localhost proftpd]# cd proftpd-1.3.4b/  [root@localhost proftpd-1.3.4b]# ls  acconfig.h    configure     include     m4             README               README.DSO      README.PAM             src  aclocal.m4    configure.in  INSTALL     Makefile.in    README.AIX           README.facl     README.ports           stamp-h.in  ChangeLog     contrib       install-sh  Make.rules.in  README.capabilities  README.FreeBSD  README.Solaris2.5x     tests  config.guess  COPYING       lib         modules        README.classes       README.IPv6     README.Unixware        utils  config.h.in   CREDITS       locale      NEWS           README.controls      README.LDAP     RELEASE_NOTES  config.sub    doc           ltmain.sh   proftpd.spec   README.cygwin        README.modules  sample-configurations  [root@localhost proftpd-1.3.4b]# ./configure --prefix=/usr/local/proftpd    #配置  [root@localhost proftpd-1.3.4b]# make  [root@localhost proftpd-1.3.4b]# make install    (2)源代码包的卸载:  [root@localhost local]# ls -l | grep proftpd  drwxr-xr-x. 10 root root 97 Nov 28 09:56 proftpd  [root@localhost local]# rm -rf proftpd/

脚本安装与卸载:

以webmin为例来说明脚本安装与卸载。

[root@localhost webmin]# ls  webmin-1.740.tar.gz  [root@localhost webmin]# tar -zxvf webmin-1.740.tar.gz  [root@localhost webmin]# ls  webmin-1.740  webmin-1.740.tar.gz  [root@localhost webmin]# cd webmin-1.740/  [root@localhost webmin-1.740]# ./setup.sh  安装中...  安装过程中会显示:  Creating uninstall script /etc/webmin/uninstall.sh ..  ..done  如此我们可以使用/etc/webmin/uninstall.sh来卸载webmin

注意: CentOS在webmin安装后外部主机不能访问,原因是CentOS中的防火墙规则较严密,需要将10000端口加入信任端口,

[root@localhost webmin]# cd /etc/sysconfig/  [root@localhost sysconfig]# iptables -I INPUT -p TCP --dport 10000 -j ACCEPT
来自:http://my.oschina.net/LvSantorini/blog/536948