Linux学习笔记之软件包的管理
1、RPM(RPM Package Manager)
格式:例如cvs.1.11.2-10.i386.rpm
cvs:软件的名称 1.11.2:软件包的版本号其中包括主版本号和次版本号 i386:软件所运行的硬件平台 rpm:文件扩展名 www.zhishiwu.com
卸载:rmp -e cvs [--nodeps]如果其它软件包括有依赖关系,卸载时会产生提示信息,可使用--nodeps强行卸载
查询:rmp -qa 软件包名称
[root@CentOS-Test Packages]# rpm -aq sudo 查询此软件包所依赖的其它包
[root@CentOS-Test /]# rpm -qf /etc/services 查询文件所属的文件包
setup-2.8.14-16.el6.noarch
[root@CentOS-Test Packages]# rpm -qip sudo-1.7.4p5-11.el6.i686.rpm 查询未安装的软件包是做什么用的
[root@CentOS-Test /]# rpm -qc sudo 查看已安装rpm的配置文件
/etc/pam.d/sudo
/etc/pam.d/sudo-i
/etc/sudo-ldap.conf
/etc/sudoers
[root@CentOS-Test /]# rpm -ql sudo sudo软件包安装路径以及都安装了哪些文件,一般/etc下面的都是配置文件 /usr/bin下面的都是命令
sudo-1.7.4p5-11.el6.i686
安装:rmp -ivh 软件包名
rpm -ivh --excludedocs 软件包名 安装时安装文档
rpm -ivh --prefix path 软件包名 安装时指定安装路径
rpm -ivh --test 软件包名 只对安装进行测试并不实际安装
光盘的挂载:
mkdir /mnt/cdrom 如果没有可以先行创建此文件夹
mount /dev/cdrom /mnt/cdrom 将光盘文件挂载到刚才创建的文件夹中
[root@CentOS-Test ~]# mount /dev/cdrom /mnt/cdrom
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@CentOS-Test Packages]# ls | grep sudo
sudo-1.7.4p5-11.el6.i686.rpm
升级安装:rpm -Uvh 软件包名称
覆盖安装:rpm -ivh --replacepkgs 软件包名称
文件冲突时安装 rpm -ivh --replacefiles 软件包名称
未解决的依赖关系 rpm -ivh --nodeps 软件名称 强制安装,解决安装时的依赖关系,但是十有八九不能用
2、yum
优点:自动解决软件包依赖关系 方便的软件包升级 前提条件是必须接入互联网
安装:yum install 软件包名称
检查更新: yum check-update 软件包名称
更新: yum update
软件包查询: yum list |grep sudo yum list |grep samba 查找到的是yum源上的软件包
软件包信息:yum info sudo 用于查看软件包的信息
卸载:yum remove 软件包名称
帮助:yum --help
3、校验
md5sum 文件名 只校验文件的内容
[root@CentOS-Test data]# md5sum lhc_xx.txt
490b812cb03bacbf5fc5fadc4029efa2 lhc_xx.txt
[root@CentOS-Test data]# echo "#this is a test file" >>lhc_xx.txt
[root@CentOS-Test data]# md5sum lhc_xx.txt
10be8cdfcd22f7cbd1494141a03e67f8 lhc_xx.txt
rpm -V 软件名称 参数如下:
5:文件的md5校验值 S:文件的大小 L:链接文件 T:文件的创建时间 D:设备文件 U:文件的用户 G:文件的用户组 M:文件的权限
4、RPM包的管理
软件包文件提取
例如:
不小心删除了/etc/inittab文件 或从光盘进入修复模式
[root@CentOS-Test bak]# rm -f /etc/inittab
查找inittab文件所属的rpm包
[root@CentOS-Test bak]# rpm -qf /etc/inittab
initscripts-9.03.31-2.el6.centos.i686
挂载光盘到mnt/cdrom
[root@CentOS-Test bak]# mount /dev/cdrom /mnt/cdrom
从光盘中的rpm包中恢复inittab文件到当前的目录下
[root@CentOS-Test bak]# rpm2cpio /mnt/cdrom/Packages/initscripts-9.03.31-2.el6.centos.i686.rpm |cpio -idv ./etc/inittab
./etc/inittab
11182 块
复制./etc/inittab文件到/etc/inittab
[root@CentOS-Test bak]# cp etc/inittab /etc/inittab
5、源代码包安装
源代码包比较灵活可以再安装时指定路径或其它选项,安装之前必须有编译器 gcc或其它编译器。安装步骤一般为
安装gcc编译器(可以使用yum安装) 解压缩 执行./confgure make make install
以安装proftpd为例
解压缩软件包
[root@CentOS-Test software]# tar -xzvf proftpd-1.3.4b.tar.gz
进入到解压缩后的目录然后显示文件列表
[root@CentOS-Test proftpd-1.3.4b]# ls
acconfig.h configure.in install-sh modules README.controls README.modules src
aclocal.m4 contrib lib NEWS README.cygwin README.PAM stamp-h.in
ChangeLog COPYING locale proftpd.spec README.DSO README.ports tests
config.guess CREDITS ltmain.sh README README.facl README.Solaris2.5x utils
config.h.in doc m4 README.AIX README.FreeBSD README.Unixware
config.sub include Makefile.in README.capabilities README.IPv6 RELEASE_NOTES
configure INSTALL Make.rules.in README.classes README.LDAP sample-configurations
找到文件中的configure,执行并加入--prefix参数指定安装路径
[root@CentOS-Test proftpd-1.3.4b]# ./configure --prefix=/usr/local/proftpd
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking target system type... i686-pc-linux-gnu
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.
提示未找到gcc的编译器,故需要先安装gcc的编译器
[root@CentOS-Test proftpd-1.3.4b]# rpm -qa gcc
[root@CentOS-Test proftpd-1.3.4b]# yum install gcc
然后再次执行[root@CentOS-Test proftpd-1.3.4b]# ./configure --prefix=/usr/local/proftpd
编译:make 在此之前一定要安装编译器
[root@CentOS-Test proftpd-1.3.4b]# make
安装 make install
[root@CentOS-Test proftpd-1.3.4b]# make install
6、脚本安装
例如:webmin、OpenOffice