Linux软件包管理
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