安装和升级软件包
rpm 第一个选项决定功能
-q 查询 -qa 查询系统中安装了哪些软件包 rpm -qa |grep lrzsz
-ql 包名(不包括后缀.rpm) 查看此包安装到哪里去了
-qc 包名 查看此软件包的配置文件在哪
-qd 包名 查看帮助文档
-qi 包名 查看软件包的信息
安装会产生很多个文件,分布在不同的目录里,
-qf file 查看此文件是由哪个包安装得来的
以上都是查看已经安装过的包名 加-p 就可以查看未安装的安装包的信息
-qpi 安装包(包括.rpm后缀) 查看未安装的安装包的信息。
rpm -e vsftpd 卸载
rpm -ivh vsftpd-3.0.xx.x.rpm
-e 是卸载 -i 是安装
-Uvh xxx.rpm U是更新软件
对于普通的软件包来说,不能多版本共存
若想安装新版本,需要先卸载旧版本,再安装新版本。
或者直接用 -Uvh 更新软件包。其实更新也是先卸载,再安装的过程
内核除外。内核是可以多版本共存的。
内核不建议使用 -Uvh 更新, 要使用-ivh
uname -r 查看当前内核版本
作业:自己练习 rpm -Uvh kernel
rpm -K xxx.rpm 对软件包验证是否是红帽提供
这里用到了数字签名 私钥加密,公钥解密
哈希函数: 输入一个不定长的值,总能得到一个定长的值
A 先使用哈希函数(例如用md5),对传输数据取得哈希值 ,然后用A 的私钥对哈希值加密
A把源文件(源传输数据)和加密后的哈希值传递给B
B使用A的公钥对加密后的哈希值解密。然后用和A同样的哈希函数对源文件取哈希值
然后对比自己哈希出来的值 和 用A公钥解密出来的哈希值是否一样
若一样,则成功。
先导入红帽公钥才能验证
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
rpm -qa |grep gpg-pubkey 查询是否有公钥导入
rpm -V xxx 查看此软件安装后生成的安装文件是否有被修改过
若有修改,则显示出来。当删除此软件的时候,被修改的文件会被保存起来,而不会被删除
--force 强制安装
--nodeps 不验证软件依赖
不建议使用 --nodeps 装了也不能用,自欺欺人
yum
配置YUM 服务器端
setenforce 0 SElinux 关闭
iptables -F 关闭防火墙
ftp/http/nfs 都可以
rpm -ivh vsftpd-xxx.rpm
systemctl start vsftpd
cd /var/ftp/
mkdir cdrom 创建一个文件夹cdrom
cp -rf /iso/* cdrom/ 把光盘里的东西都cp进来。 光盘事先挂载在/iso 下了
服务器需要记录每一个软件包的源数据,记载了软件对的依赖关系等
光盘里有个repodata 目录,记录了光盘里的所有RPM包的信息,这个目录解决了同级目录下的RPM包的依赖关系
createrepo -v /var/ftp/ 这个命令会读取ftp文件夹下所有的rpm包,然后将信息记录下来,生成一个repodata目录. 关盘里那个repodata目录也是这么生成的
客户端配置
cd /etc/yum.repos.d/ 此目录默认是空的。
在此目录里创建一个xx.repo的文件
vim xx.repo
[aa] 此名字为yum源名字,随便起
name=aaa 注释信息。也随便
baseurl=ftp://xxx.xxx.xx.x/cdrom repodata所在的目录
enabled=1 表示此源管用, 0 表示不管用
gpgcheck=0 表示不对源做验证
[bb]
xxx
xx 可以继续往下写第二个源
####ftp://xxx.xxx.xx.x/ 表示的是/var/ftp 这是ftp服务的根目录
yum clean all 清除缓存
yum repolist 查看可用的yum源
#######3加载插件是放在 pluginconf.d/rhnplugin.conf 里的 把enable=1改为=0就把插件都关了
客户端使用yum
1 安装某个包之前先查询是否安装过了
yum search vsftpd 在yum源里查询是否有此包 有不代表一定能安
yum list vsftpd 查看是否有可安装的包
--disablerepo=xx 禁用xx源 --enablerepo=aa 启用aa源
yum install vsftpd 安装
yum remove vsftpd 卸载
yum update 更新
-y 选项:不用交互,不用在安装过程中回答 yes 或no 直接默认安装
yum info vsftpd 查看包信息
yum install vsftpd --downloadonly --downloaddir=/aa 只下载不安装。下载到/aa中
原本安装的时候是默认把包下载到缓存中,安装后包是会被删除的
yum whatprovides */smbpasswd 在源中查找那个包安装后能生成smbpasswd
yum grouplist 虚拟化* 找虚拟化包组
yum groupinstall 虚拟化包组 安装包组
作业 安装好系统后,会经常提示你注册系统服务什么的。卸载掉它!!
yum list subscript\*
卸载上述命令列出的包
/etc/yum.repos.d/ 这个目录中有的时候会生成一个xxxx.repo的文件
红帽自带的源不能用,这是红帽的源。。这时候你自己配的源也不能用了。
把除了自己写的.repo源删除
chattr +i /etc/yum.repos.d/ 或者把这个目录设置为不能再增加内容
fedora 社区提供了一个epel 源
下载epelxxx.rpm包。安装这个包
这时候yum源目录里就会多出epel 源配置 这时候就联网能安装这个源里的包
pkgs.org
如果epel里也没有 可以去这个网站下载。这也是国外的站
或者去centos 源里安装或者互联网上的其他源
rpm 第一个选项决定功能
-q 查询 -qa 查询系统中安装了哪些软件包 rpm -qa |grep lrzsz
-ql 包名(不包括后缀.rpm) 查看此包安装到哪里去了
-qc 包名 查看此软件包的配置文件在哪
-qd 包名 查看帮助文档
-qi 包名 查看软件包的信息
安装会产生很多个文件,分布在不同的目录里,
-qf file 查看此文件是由哪个包安装得来的
以上都是查看已经安装过的包名 加-p 就可以查看未安装的安装包的信息
-qpi 安装包(包括.rpm后缀) 查看未安装的安装包的信息。
rpm -e vsftpd 卸载
rpm -ivh vsftpd-3.0.xx.x.rpm
-e 是卸载 -i 是安装
-Uvh xxx.rpm U是更新软件
对于普通的软件包来说,不能多版本共存
若想安装新版本,需要先卸载旧版本,再安装新版本。
或者直接用 -Uvh 更新软件包。其实更新也是先卸载,再安装的过程
内核除外。内核是可以多版本共存的。
内核不建议使用 -Uvh 更新, 要使用-ivh
uname -r 查看当前内核版本
作业:自己练习 rpm -Uvh kernel
rpm -K xxx.rpm 对软件包验证是否是红帽提供
这里用到了数字签名 私钥加密,公钥解密
哈希函数: 输入一个不定长的值,总能得到一个定长的值
A 先使用哈希函数(例如用md5),对传输数据取得哈希值 ,然后用A 的私钥对哈希值加密
A把源文件(源传输数据)和加密后的哈希值传递给B
B使用A的公钥对加密后的哈希值解密。然后用和A同样的哈希函数对源文件取哈希值
然后对比自己哈希出来的值 和 用A公钥解密出来的哈希值是否一样
若一样,则成功。
先导入红帽公钥才能验证
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
rpm -qa |grep gpg-pubkey 查询是否有公钥导入
rpm -V xxx 查看此软件安装后生成的安装文件是否有被修改过
若有修改,则显示出来。当删除此软件的时候,被修改的文件会被保存起来,而不会被删除
--force 强制安装
--nodeps 不验证软件依赖
不建议使用 --nodeps 装了也不能用,自欺欺人
yum
配置YUM 服务器端
setenforce 0 SElinux 关闭
iptables -F 关闭防火墙
ftp/http/nfs 都可以
rpm -ivh vsftpd-xxx.rpm
systemctl start vsftpd
cd /var/ftp/
mkdir cdrom 创建一个文件夹cdrom
cp -rf /iso/* cdrom/ 把光盘里的东西都cp进来。 光盘事先挂载在/iso 下了
服务器需要记录每一个软件包的源数据,记载了软件对的依赖关系等
光盘里有个repodata 目录,记录了光盘里的所有RPM包的信息,这个目录解决了同级目录下的RPM包的依赖关系
createrepo -v /var/ftp/ 这个命令会读取ftp文件夹下所有的rpm包,然后将信息记录下来,生成一个repodata目录. 关盘里那个repodata目录也是这么生成的
客户端配置
cd /etc/yum.repos.d/ 此目录默认是空的。
在此目录里创建一个xx.repo的文件
vim xx.repo
[aa] 此名字为yum源名字,随便起
name=aaa 注释信息。也随便
baseurl=ftp://xxx.xxx.xx.x/cdrom repodata所在的目录
enabled=1 表示此源管用, 0 表示不管用
gpgcheck=0 表示不对源做验证
[bb]
xxx
xx 可以继续往下写第二个源
####ftp://xxx.xxx.xx.x/ 表示的是/var/ftp 这是ftp服务的根目录
yum clean all 清除缓存
yum repolist 查看可用的yum源
#######3加载插件是放在 pluginconf.d/rhnplugin.conf 里的 把enable=1改为=0就把插件都关了
客户端使用yum
1 安装某个包之前先查询是否安装过了
yum search vsftpd 在yum源里查询是否有此包 有不代表一定能安
yum list vsftpd 查看是否有可安装的包
--disablerepo=xx 禁用xx源 --enablerepo=aa 启用aa源
yum install vsftpd 安装
yum remove vsftpd 卸载
yum update 更新
-y 选项:不用交互,不用在安装过程中回答 yes 或no 直接默认安装
yum info vsftpd 查看包信息
yum install vsftpd --downloadonly --downloaddir=/aa 只下载不安装。下载到/aa中
原本安装的时候是默认把包下载到缓存中,安装后包是会被删除的
yum whatprovides */smbpasswd 在源中查找那个包安装后能生成smbpasswd
yum grouplist 虚拟化* 找虚拟化包组
yum groupinstall 虚拟化包组 安装包组
作业 安装好系统后,会经常提示你注册系统服务什么的。卸载掉它!!
yum list subscript\*
卸载上述命令列出的包
/etc/yum.repos.d/ 这个目录中有的时候会生成一个xxxx.repo的文件
红帽自带的源不能用,这是红帽的源。。这时候你自己配的源也不能用了。
把除了自己写的.repo源删除
chattr +i /etc/yum.repos.d/ 或者把这个目录设置为不能再增加内容
fedora 社区提供了一个epel 源
下载epelxxx.rpm包。安装这个包
这时候yum源目录里就会多出epel 源配置 这时候就联网能安装这个源里的包
pkgs.org
如果epel里也没有 可以去这个网站下载。这也是国外的站
或者去centos 源里安装或者互联网上的其他源