软件安装:RPM、SRPM 与 YUM 功能
软件管理器简介
厂商先在他们的系统上面编译好了我们用户所需要的软件,然后将这个编译好的可执行的软件直接发布给
用户来安装。
Linux 界的两个主流:RPM 与 DPKG
Linux 开发商先在固定的硬件平台与操作系统平台上面讲需要安装或升级的软件编译好,然后将这个软件
的所有相关文件打包成为一个特殊格式的文件,在这个软件文件内还包含了预先检测系统与依赖软件脚本,
并提供记载该软件提供的所有文件信息等,最终将这个软件文件发布。客户端取得这个文件后,只要通过
特定的命令来安装,那么该软件文件就会按照内部的脚本来检测相关的前去软件是否存在,若安装的环境
符合需求,那就会开始安装,安装完成后还会将该软件的信息写入软件管理机制中,已完成未来可以进行
升级、删除等操作。
dpkg
Debian Linux 社区开发出来
RPM
Red Hat 这家公司开发
什么是RPM与SRPM
RPM 是以一种数据库记录的方式来将你所需要的软件安装到你的 Linux 系统的一套管理机制。
优点是:
1.由于已经编译完成并且打包完毕,所以软件传输与安装上很方便(不需要再重新编译)
2.由于软件的信息都已经记录在 Linux 主机的数据库上,很方便查询、升级与反安装
该软件文件几乎只能安装在原本默认的硬件与操作系统版本中。
通常不同的 distribution 所发布的 RPM 文件并不能用在其他的 distributions 上。
1.软件安装的环境必须与打包时的环境需求一致或相当;
2.需要满足软件的依赖属性需求;
3.反安装时需要特别小心,最底层的软件不可先删除,否则可能造成整个系统的问题!
SRPM 是 Source RPM 的意思,也就是这个 RPM 文件里面含有源代码。通常的扩展名为:***.src.rpm
如果我们下载的是 SRPM,那么要安装该软件时,就需要:
1.先将该软件以 RPM 管理的方式编译,此时 SRPM 会被编译成为 RPM 文件;
2.然后将编译完成的 RPM 文件安装到 Linux 系统当中
可以通过修改 SRPM 内的参数设置文件,然后重新编译生成能适合我们 Linux 环境的 RPM 文件。
什么是 i386、i586、i686、noarch、x86_64
例如:rp-pppoe-3.1-5.i386.rpm
re-pppoe - 3.1 - 5 - i386 .rpm
软件名称 软件版本信息 发布的次数 适合的硬件平台 扩展名
i386 i586 i686 x86_64
noarch(就是没有任何硬件等级上的限值。一般来说,这种类型的 RPM 文件里面应该没有二进制程序存在,
较常出现的就是属于 shell script 方面的软件)
最低等级的 i386 软件可以安装在所有的 x86 硬件平台上面,不论是 32 位还是 64 位,但是反过来说就
不行了。
RPM 的优点
1.RPM 内含已经编译过的程序与设置文件等数据,可以让用户免除重新编译的困扰
2.RPM 再被安装之前,会先检查系统的硬盘容量、操作系统版本等,可避免文件被错误安装
3.RPM 文件本身提供软件版本信息、依赖属性软件名称、软件用途说明、软件所含文件等信息、便于
了解软件
4.RPM 管理的方式使用数据库记录 RPM 文件的相关参数,便于升级、删除、查询与验证
RPM 属性依赖的解决方式:YUM 在线升级
当客户端有升级、安装的需求时,yum 会向容器要求清单的更新,等到清单更新到本机的 /var/cache/yum
里面后,等一下更新时就会用这个本机清单与本机的 RPM 数据库进行比较,这样就知道该下载什么软件。
接下来 yum 会跑到容器服务器 (yum server) 下载所需要的软件,然后再通过 RPM 的机制开始安装软件。
RPM 软件管理程序:rpm
RPM 默认安装的路径
/var/lib/rpm RPM 的数据库目录
RPM 安装 (install)
rpm -ivh package_name
-i install 的意思
-v 查看更详细的安装信息画面
-h 已安装信息栏显示安装进度
rpm -ivh rp-pppoe-3.5-32.1.i386.rpm
rpm -ivh a.i386.rpm b.i386.rpm *.rpm (一下安装多个 rpm)
rpm -ivh http://website.name/path/pkgname.rpm (直接由网络上面的某个文件安装)
RPM 升级与更新 (upgrade/freshen)
rpm -Uvh xxx.rpm 没有安装予以直接安装
rpm -Fvh xxx.rpm 没有安装不予以安装
对整个操作系统的旧版软件修补时:
1.到各个厂商的 errata 网站或者是国内的 FTP 镜像站点下载最新的 RPM 文件;
2.使用 -Fvh 来将你的系统内曾安装过的软件进行修补与升级
RPM 查询 (query)
rpm -qa
rpm -q[licdR] 已安装的软件名称
rpm -qf 存在于系统上面的某个文件名
rpm -qp[licdR] 未安装的某个文件名称
查询已安装软件信息:
-q 仅查询,后面接的软件名称是否有安装
-qa 列出所有的已经安装在本机 Linux 系统上面的所有软件名称
-qi 列出该软件的详细信息 (information),包含开发商,版本与说明等
-ql 列出该软件所有的文件与目录所在完整文件名 (list)
-qc 列出该软件的所有设置文件 (找出在 /etc/ 下面的文件名而已
-qd 列出该软件的所有帮助文件 (找出与 man 有关的文件而已)
-qR 列出与该软件有关的依赖软件所含的文件 (Required 的意思)
-qf 由后面接的文件名称找出该文件属于哪一个已安装的文件
查询某个 RPM 文件内含有的信息:
-qp[icdlR] 注意 -qp 后面接的所有参数以上面的说明一致,但用途仅在于
找出某个 RPM 文件内的信息,而非已安装的软件信息
rpm -q logrotate (找出 Linux 是否有安装 logrotate 这个软件)
logrotate-3.7.4-8
rpm -q logrotating
package logrotating is not installed
rpm -ql logrotate (列出属于该软件所提供的所有目录与文件)
rpm -qi logrotate (列出该软件的相关说明数据)
rpm -qc logrotate (找出 logrotate 的设置文件)
rpm -qd logrotate (找出 logrotate 的帮助文件)
rpm -qR logrotate (找出 logrotate 所依赖的软件)
rpm -qf /bin/sh (找出 /bin/sh 是哪个软件提供的)
rpm -qpR filename.i386.rpm (找出文件的需求文件)
RPM 验证与数字证书 (VerifySinature)
使用 /var/lib/rpm 下面的数据库内容来比较目前 Linux 系统的环境下的所有文件。
rpm -Va
rpm -V 已安装的软件名称
rpm -Vp 某个 RPM 文件的文件名
rpm -Vf 在系统上面的某个文件
-V 后面加得是软件名称,若该软件所含的文件被改动过,才会列出来
-Va 列出目前系统上面所有可能被改动过的文件
-Vp 后面加的是文件名称,列出该软件内可能被改动过的文件
-Vf 列出某个文件是否被改动过
rpm -V logrotate (查询 Linux 内的 logrotate 这个软件是否被改动过)
rpm -Vf /etc/crontab (查询 /etc/crontab 是否有被改动过)
rpm -ql logrotate
rpm -V logrotate
数字证书
1.首先你必须要先安装原厂发布的公钥文件;
2.实际安装原厂的 RPM 软件时,rpm 命令会去读取 RPM 文件的证书信息,与本机
系统内的证书信息比较
ll /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
cat /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
locate GPG-KEY
find /etc -name '*GPG-KEY'
rpm -qa | grep pubkey
rpm -qi gpg-pubkey-e8562897-459f07a4
卸载 RPM 与重建数据库
rpm -qa | grep pam (找出与 pam 有关的软件名称,并且尝试删除 pam 这个软件)
rpm -e pam (报错:依赖性问题)
rpm -e pam-devel (不会出现任何信息)
rpm -q pam-devel
package pam-devel is not installed
rpm --rebuilddb (重建数据库 /var/lib/rpm)
SRPM 的使用:rpmbuild
新版的 rpm 已经将 RPM 与 SRPM 的命令分开了,SRPM 使用的是 rpmbuild 这个命令,而不是 rpm。
利用默认值安装 SRPM 文件 ( --rebuid/--recomplie )
--rebuild 这个选项将后面的 SRPM 进行编译与打包的操作,最后会生成 RPM 的文件,但是产生的
RPM 文件并没有安装到系统上。当你使用 --rebuild 的时候,最后通常会发现一行字体:
Wrote:/usr/src/redhat/RPMS/i386/pkgname.i386.rpm
这个就是编译完成的 RPM 文件。这个文件就可以用来安装。安装的时候请加绝对路径来
安装即可
--recompile 这个动作会直接编译、打包并且安装。请注意,rebuild 仅编译并打包而已,而
recompile 不但进行编译跟打包,还同时进行安装
SRPM 使用的路径与需要的软件
/usr/src/redhat/SPECS 存放信息参数、设置文件
/usr/src/redhat/SOURCES 源文件 (*.tar.gz文件)以及 config 这个设置文件
/usr/src/redhat/BUILD 编译过程的暂存文件
/usr/src/redhat/RPMS 经过编译之后,并且顺利编译成功之后,将打包完成的文件放置在这个目录
当中
/usr/src/redhat/SRPMS SRPM 封装的文件
设置文件的主要内容 (*.spec)
rpm -i rp-pppoe-3.5-32.1.src.rpm
# 过程不会显示任何东西,它只会将 SRPM 的文件解开后放置到 /usr/src/redhat/ 下
find /usr/src/redhat/ -type -f
# 主要含有源代码与一个重要的设置文件 rp-pppoe.spec
cd /usr/src/redhat/SPECS
vi rp-pppoe.spec
SRPM 的编译命令 (-ba/-bb)
rembuild -ba rp-pppoe.spec (编译并同时生成 RPM 与 SRPM)
rembuild -bb rp-pppoe.spec (仅编译成 RPM 文件)
cd /usr/src/redhat/SPECS
rpmbuild -ba rp-pppoe.spec
find /usr/src/redhat -name 'rp-pppoe*rpm'
一个打包自己软件的范例
制作源代码文件 tarball 生成
mkdir /usr/local/src/main-0.1
tar -zxvf main.tgz -C /usr/local/src/main-0.1
cd /usr/local/src/main-0.1
vim Makefile
LIBS = -lm
OBJS = main.o haha.o sin_value.o cos_value.o
main: ${OBJS}
gcc -o main ${OBJS} ${LIBS}
clean:
rm -f main ${OBJS}
install:
install -m 755 main $(RPM_INSTALL_ROOT)/user/local/bin/main
cd ..
tar -zcvf main-0.1.tar.gz main-0.1
cp main-0.1.tar.gz /usr/src/redhat/SOURCES
新建 *.spec 的设置文件
cd /usr/src/redhat/SPECS
vim main.spec
编译成为 RPM 与 SRPM
rpmbuild -bm main.spec
安装/测试/实际查询
rpm -ivh /usr/src/redhat/RPMS/i386/main-0.1-1.i386.rpm
rpm -ql main
rpm -qi main
YUM 在线升级机制
利用 yum 进行查询、安装、升级与删除功能
查询功能:yum [list|info|search|provides|whatprovides]参数
yum [option] [查询工作项目] [相关参数]
[option] 主要的参数,包括有:
-y 当 yum 要等待用户输入时,这个选项可以自动提供 yes 的相应
--installroot=/some/path 将该软件安装在 /some/path 中而不使用
默认路径
[查询工作项目] [相关参数] 这方面的参数有:
search 搜索某个软件名称或者是描述 (description) 的重要关键字
list 列出目前 yum 所管理的所有的软件名称与版本,有点类似于 rpm -qa
info 同上,不过有点类似于 rpm -qai 的运行结果
provides 从文件去搜索软件!类似于 rpm -qf 的功能
yum search raid (搜索磁盘阵列相关的软件有哪些)
yum info mdadm (找出 mdadm 这个软件的功能为何)
yum list (列出 yum 服务器上面提供的所有软件名称)
yum list updates (列出目前服务器上可供本机进行升级的软件有哪些)
yum provides passwd (列出提供 passwd 这个文件的软件有哪些)
安装/升级功能:yum [install|update] 软件
install 后面接要安装的软件
update 后面接要升级的软件,若要整个系统都升级,就直接 update 即可
yum install pam-devel
删除功能:yum [remove] 软件
yum remove pam-devel
yum 的设置文件
vim /etc/yum.repos.d/CentOS-Base.repo
yum repolist all
修改容器产生的问题与解决之道
yum clean [packages|headers|all]
packages 将已下载的软件文件删除
headers 将下载的软件文件头删除
all 将所有容器数据都删除
yum clean all
yum 的软件组功能
yum [组功能] [软件组]
grouplist 列出所有可使用的组列表,例如 Development Tools 之类的
groupinfo 后面接 group name, 则可了解该 group 内含的所有组名称
groupinstall 这个好用!可以安装一整组的软件,相当不错
groupremove 删除某个组
yum grouplist (查看目前容器与本机上面的可用与安装过的软件组有哪些)
yum groupinfo XFCE-4.4
全系统自动升级
vim /etc/crontab
0 3 * * * root /usr/bin/yum -y update
管理的抉择:RPM 还是 Tarball
1.优先选择原厂的 RPM 功能
2.选择软件官方网站发布的 RPM 或者是提供的容器网址
3.利用 Tarball 安装特殊软件
4.用 Tarball 测试新版本软件
软件管理器简介
厂商先在他们的系统上面编译好了我们用户所需要的软件,然后将这个编译好的可执行的软件直接发布给
用户来安装。
Linux 界的两个主流:RPM 与 DPKG
Linux 开发商先在固定的硬件平台与操作系统平台上面讲需要安装或升级的软件编译好,然后将这个软件
的所有相关文件打包成为一个特殊格式的文件,在这个软件文件内还包含了预先检测系统与依赖软件脚本,
并提供记载该软件提供的所有文件信息等,最终将这个软件文件发布。客户端取得这个文件后,只要通过
特定的命令来安装,那么该软件文件就会按照内部的脚本来检测相关的前去软件是否存在,若安装的环境
符合需求,那就会开始安装,安装完成后还会将该软件的信息写入软件管理机制中,已完成未来可以进行
升级、删除等操作。
dpkg
Debian Linux 社区开发出来
RPM
Red Hat 这家公司开发
什么是RPM与SRPM
RPM 是以一种数据库记录的方式来将你所需要的软件安装到你的 Linux 系统的一套管理机制。
优点是:
1.由于已经编译完成并且打包完毕,所以软件传输与安装上很方便(不需要再重新编译)
2.由于软件的信息都已经记录在 Linux 主机的数据库上,很方便查询、升级与反安装
该软件文件几乎只能安装在原本默认的硬件与操作系统版本中。
通常不同的 distribution 所发布的 RPM 文件并不能用在其他的 distributions 上。
1.软件安装的环境必须与打包时的环境需求一致或相当;
2.需要满足软件的依赖属性需求;
3.反安装时需要特别小心,最底层的软件不可先删除,否则可能造成整个系统的问题!
SRPM 是 Source RPM 的意思,也就是这个 RPM 文件里面含有源代码。通常的扩展名为:***.src.rpm
如果我们下载的是 SRPM,那么要安装该软件时,就需要:
1.先将该软件以 RPM 管理的方式编译,此时 SRPM 会被编译成为 RPM 文件;
2.然后将编译完成的 RPM 文件安装到 Linux 系统当中
可以通过修改 SRPM 内的参数设置文件,然后重新编译生成能适合我们 Linux 环境的 RPM 文件。
什么是 i386、i586、i686、noarch、x86_64
例如:rp-pppoe-3.1-5.i386.rpm
re-pppoe - 3.1 - 5 - i386 .rpm
软件名称 软件版本信息 发布的次数 适合的硬件平台 扩展名
i386 i586 i686 x86_64
noarch(就是没有任何硬件等级上的限值。一般来说,这种类型的 RPM 文件里面应该没有二进制程序存在,
较常出现的就是属于 shell script 方面的软件)
最低等级的 i386 软件可以安装在所有的 x86 硬件平台上面,不论是 32 位还是 64 位,但是反过来说就
不行了。
RPM 的优点
1.RPM 内含已经编译过的程序与设置文件等数据,可以让用户免除重新编译的困扰
2.RPM 再被安装之前,会先检查系统的硬盘容量、操作系统版本等,可避免文件被错误安装
3.RPM 文件本身提供软件版本信息、依赖属性软件名称、软件用途说明、软件所含文件等信息、便于
了解软件
4.RPM 管理的方式使用数据库记录 RPM 文件的相关参数,便于升级、删除、查询与验证
RPM 属性依赖的解决方式:YUM 在线升级
当客户端有升级、安装的需求时,yum 会向容器要求清单的更新,等到清单更新到本机的 /var/cache/yum
里面后,等一下更新时就会用这个本机清单与本机的 RPM 数据库进行比较,这样就知道该下载什么软件。
接下来 yum 会跑到容器服务器 (yum server) 下载所需要的软件,然后再通过 RPM 的机制开始安装软件。
RPM 软件管理程序:rpm
RPM 默认安装的路径
/var/lib/rpm RPM 的数据库目录
RPM 安装 (install)
rpm -ivh package_name
-i install 的意思
-v 查看更详细的安装信息画面
-h 已安装信息栏显示安装进度
rpm -ivh rp-pppoe-3.5-32.1.i386.rpm
rpm -ivh a.i386.rpm b.i386.rpm *.rpm (一下安装多个 rpm)
rpm -ivh http://website.name/path/pkgname.rpm (直接由网络上面的某个文件安装)
RPM 升级与更新 (upgrade/freshen)
rpm -Uvh xxx.rpm 没有安装予以直接安装
rpm -Fvh xxx.rpm 没有安装不予以安装
对整个操作系统的旧版软件修补时:
1.到各个厂商的 errata 网站或者是国内的 FTP 镜像站点下载最新的 RPM 文件;
2.使用 -Fvh 来将你的系统内曾安装过的软件进行修补与升级
RPM 查询 (query)
rpm -qa
rpm -q[licdR] 已安装的软件名称
rpm -qf 存在于系统上面的某个文件名
rpm -qp[licdR] 未安装的某个文件名称
查询已安装软件信息:
-q 仅查询,后面接的软件名称是否有安装
-qa 列出所有的已经安装在本机 Linux 系统上面的所有软件名称
-qi 列出该软件的详细信息 (information),包含开发商,版本与说明等
-ql 列出该软件所有的文件与目录所在完整文件名 (list)
-qc 列出该软件的所有设置文件 (找出在 /etc/ 下面的文件名而已
-qd 列出该软件的所有帮助文件 (找出与 man 有关的文件而已)
-qR 列出与该软件有关的依赖软件所含的文件 (Required 的意思)
-qf 由后面接的文件名称找出该文件属于哪一个已安装的文件
查询某个 RPM 文件内含有的信息:
-qp[icdlR] 注意 -qp 后面接的所有参数以上面的说明一致,但用途仅在于
找出某个 RPM 文件内的信息,而非已安装的软件信息
rpm -q logrotate (找出 Linux 是否有安装 logrotate 这个软件)
logrotate-3.7.4-8
rpm -q logrotating
package logrotating is not installed
rpm -ql logrotate (列出属于该软件所提供的所有目录与文件)
rpm -qi logrotate (列出该软件的相关说明数据)
rpm -qc logrotate (找出 logrotate 的设置文件)
rpm -qd logrotate (找出 logrotate 的帮助文件)
rpm -qR logrotate (找出 logrotate 所依赖的软件)
rpm -qf /bin/sh (找出 /bin/sh 是哪个软件提供的)
rpm -qpR filename.i386.rpm (找出文件的需求文件)
RPM 验证与数字证书 (VerifySinature)
使用 /var/lib/rpm 下面的数据库内容来比较目前 Linux 系统的环境下的所有文件。
rpm -Va
rpm -V 已安装的软件名称
rpm -Vp 某个 RPM 文件的文件名
rpm -Vf 在系统上面的某个文件
-V 后面加得是软件名称,若该软件所含的文件被改动过,才会列出来
-Va 列出目前系统上面所有可能被改动过的文件
-Vp 后面加的是文件名称,列出该软件内可能被改动过的文件
-Vf 列出某个文件是否被改动过
rpm -V logrotate (查询 Linux 内的 logrotate 这个软件是否被改动过)
rpm -Vf /etc/crontab (查询 /etc/crontab 是否有被改动过)
rpm -ql logrotate
rpm -V logrotate
数字证书
1.首先你必须要先安装原厂发布的公钥文件;
2.实际安装原厂的 RPM 软件时,rpm 命令会去读取 RPM 文件的证书信息,与本机
系统内的证书信息比较
ll /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
cat /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
locate GPG-KEY
find /etc -name '*GPG-KEY'
rpm -qa | grep pubkey
rpm -qi gpg-pubkey-e8562897-459f07a4
卸载 RPM 与重建数据库
rpm -qa | grep pam (找出与 pam 有关的软件名称,并且尝试删除 pam 这个软件)
rpm -e pam (报错:依赖性问题)
rpm -e pam-devel (不会出现任何信息)
rpm -q pam-devel
package pam-devel is not installed
rpm --rebuilddb (重建数据库 /var/lib/rpm)
SRPM 的使用:rpmbuild
新版的 rpm 已经将 RPM 与 SRPM 的命令分开了,SRPM 使用的是 rpmbuild 这个命令,而不是 rpm。
利用默认值安装 SRPM 文件 ( --rebuid/--recomplie )
--rebuild 这个选项将后面的 SRPM 进行编译与打包的操作,最后会生成 RPM 的文件,但是产生的
RPM 文件并没有安装到系统上。当你使用 --rebuild 的时候,最后通常会发现一行字体:
Wrote:/usr/src/redhat/RPMS/i386/pkgname.i386.rpm
这个就是编译完成的 RPM 文件。这个文件就可以用来安装。安装的时候请加绝对路径来
安装即可
--recompile 这个动作会直接编译、打包并且安装。请注意,rebuild 仅编译并打包而已,而
recompile 不但进行编译跟打包,还同时进行安装
SRPM 使用的路径与需要的软件
/usr/src/redhat/SPECS 存放信息参数、设置文件
/usr/src/redhat/SOURCES 源文件 (*.tar.gz文件)以及 config 这个设置文件
/usr/src/redhat/BUILD 编译过程的暂存文件
/usr/src/redhat/RPMS 经过编译之后,并且顺利编译成功之后,将打包完成的文件放置在这个目录
当中
/usr/src/redhat/SRPMS SRPM 封装的文件
设置文件的主要内容 (*.spec)
rpm -i rp-pppoe-3.5-32.1.src.rpm
# 过程不会显示任何东西,它只会将 SRPM 的文件解开后放置到 /usr/src/redhat/ 下
find /usr/src/redhat/ -type -f
# 主要含有源代码与一个重要的设置文件 rp-pppoe.spec
cd /usr/src/redhat/SPECS
vi rp-pppoe.spec
SRPM 的编译命令 (-ba/-bb)
rembuild -ba rp-pppoe.spec (编译并同时生成 RPM 与 SRPM)
rembuild -bb rp-pppoe.spec (仅编译成 RPM 文件)
cd /usr/src/redhat/SPECS
rpmbuild -ba rp-pppoe.spec
find /usr/src/redhat -name 'rp-pppoe*rpm'
一个打包自己软件的范例
制作源代码文件 tarball 生成
mkdir /usr/local/src/main-0.1
tar -zxvf main.tgz -C /usr/local/src/main-0.1
cd /usr/local/src/main-0.1
vim Makefile
LIBS = -lm
OBJS = main.o haha.o sin_value.o cos_value.o
main: ${OBJS}
gcc -o main ${OBJS} ${LIBS}
clean:
rm -f main ${OBJS}
install:
install -m 755 main $(RPM_INSTALL_ROOT)/user/local/bin/main
cd ..
tar -zcvf main-0.1.tar.gz main-0.1
cp main-0.1.tar.gz /usr/src/redhat/SOURCES
新建 *.spec 的设置文件
cd /usr/src/redhat/SPECS
vim main.spec
编译成为 RPM 与 SRPM
rpmbuild -bm main.spec
安装/测试/实际查询
rpm -ivh /usr/src/redhat/RPMS/i386/main-0.1-1.i386.rpm
rpm -ql main
rpm -qi main
YUM 在线升级机制
利用 yum 进行查询、安装、升级与删除功能
查询功能:yum [list|info|search|provides|whatprovides]参数
yum [option] [查询工作项目] [相关参数]
[option] 主要的参数,包括有:
-y 当 yum 要等待用户输入时,这个选项可以自动提供 yes 的相应
--installroot=/some/path 将该软件安装在 /some/path 中而不使用
默认路径
[查询工作项目] [相关参数] 这方面的参数有:
search 搜索某个软件名称或者是描述 (description) 的重要关键字
list 列出目前 yum 所管理的所有的软件名称与版本,有点类似于 rpm -qa
info 同上,不过有点类似于 rpm -qai 的运行结果
provides 从文件去搜索软件!类似于 rpm -qf 的功能
yum search raid (搜索磁盘阵列相关的软件有哪些)
yum info mdadm (找出 mdadm 这个软件的功能为何)
yum list (列出 yum 服务器上面提供的所有软件名称)
yum list updates (列出目前服务器上可供本机进行升级的软件有哪些)
yum provides passwd (列出提供 passwd 这个文件的软件有哪些)
安装/升级功能:yum [install|update] 软件
install 后面接要安装的软件
update 后面接要升级的软件,若要整个系统都升级,就直接 update 即可
yum install pam-devel
删除功能:yum [remove] 软件
yum remove pam-devel
yum 的设置文件
vim /etc/yum.repos.d/CentOS-Base.repo
yum repolist all
修改容器产生的问题与解决之道
yum clean [packages|headers|all]
packages 将已下载的软件文件删除
headers 将下载的软件文件头删除
all 将所有容器数据都删除
yum clean all
yum 的软件组功能
yum [组功能] [软件组]
grouplist 列出所有可使用的组列表,例如 Development Tools 之类的
groupinfo 后面接 group name, 则可了解该 group 内含的所有组名称
groupinstall 这个好用!可以安装一整组的软件,相当不错
groupremove 删除某个组
yum grouplist (查看目前容器与本机上面的可用与安装过的软件组有哪些)
yum groupinfo XFCE-4.4
全系统自动升级
vim /etc/crontab
0 3 * * * root /usr/bin/yum -y update
管理的抉择:RPM 还是 Tarball
1.优先选择原厂的 RPM 功能
2.选择软件官方网站发布的 RPM 或者是提供的容器网址
3.利用 Tarball 安装特殊软件
4.用 Tarball 测试新版本软件