Linux中RPM和yum管理和查询软件包

2024-01-08 19:36:23

rpm管理软件包
?? ?-i:安装
?? ?-v:verbose查看详细信息
?? ?-h:查看进度条
?? ?-e:erase移除软件包
?? ?-F:升级已经安装过的软件包
?? ?-U:升级和安装软件包
?? ?--replacepkgs ?重新安装,相当于--force
?? ?--oldpackage ?安装旧版的软件包
?? ?--replacefiles 忽略包的冲突
?? ?--nodeps 忽略依赖性关系
rpm ? -ivh ?XXXXX.rpm ? : ?安装软件包,接的是完整的路径
rpm ? -e ? ?httpd ?: ?卸载httpd软件包,接的不是软件包的路径,而是名字


rpm 查询
常用选项
?? ?-q(query):查询软件包是否安装
?? ?-qa:查询已经安装过的软件包 ? ?rpm ?-qa ? | ?grep httpd?
?? ?-qi:查询软件包的信息,相当于yum info?
?? ?-ql:查询安装该软件包后会生成的文件
?? ?-qc:查询软件包的配置文件
?? ?-qd:查询软件包的帮助文件
?? ?-qf:查找文件来自于哪个软件包 ?相当于yum provides?
?? ?-q --scripts:查询在安装或者删除软件包的时候运行的shell脚本
?? ?-q --changelog:查询软件包的变更日志
?? ?-qp ?[-ilcdR --scripts ?--changelog] rpmfile :查找本地软件包文件的相关信息
rpm -qp --scripts ?/mnt/AppStream/Packages/vsftpd-3.0.3-28.el8.x86_64.rpm
当不小心误删除了配置文件,例如/etc/httpd/conf/httpd.conf文件被误删除,可以重新安装或者,yum list httpd查询软件包的详细信息,并找到/mnt/AppStream/Packages/httpd-2.4.37-10.module+el8+2764+7127e69e.x86_64.rpm,用以下命令
rpm2cpio httpd-2.4.37-10.module+el8+2764+7127e69e.x86_64.rpm | cpio -id ? : ?会生成目录结构和配置文件,可以从中直接覆盖

手动创建网络yum源
需要yum -y install createrepo_c ?: ?createrepo命令会直接生成repodata文件
把/mnt/AppStream/Packages/vsftpd-3.0.3-28.el8.x86_64.rpm 移动到/var/www/html/data目录下,并在data目录下生成repodata目录,并创建Packages文件,可把包放在Packages目录下,也可放在/data下,用以下yum源即可
[LOCAL]
name = LOCAL
baseurl = http://192.168.200.10/data
gpgcheck = 0
enabled = 1


把本主机作为网络yum源服务器
1、在/var/www/html/下面创建data目录作为本地光盘挂载点
2、把/dev/sr0挂载到/var/www/html/data下
3、配置以下的网络yum源
4、在客户端中也是这样配置
[baseOS]
name = baseOS
baseurl = http://192.168.200.10/data/BaseOS
gpgcheck = 0
enabled = 1
[appStream]
name = appStream
baseurl = http://192.168.200.10/data/AppStream
gpgcheck = 0
enabled = 1


rpm ? -V ?vsftpd ? : ?检查vftpd软件包的文件/etc/vsftpd/vsftpd.conf
S.5....T. ?c /etc/vsftpd/vsftpd.conf
S : 文件大小变化
5 : 看文件有没有变化,根据hash值判断,有变化
T : 时间戳变化
c : 配置文件
d : 目录
g : ghost文件
l : license文件
r : readme文件?

rpm -Va ?: 检查系统所有软件包的文件


/media/AppStream/Packages : ?里面有vsftpd的安装包,把软件包移动到/data目录下
rpm -K ? /data/vsftpd-3.0.3-28.el8.x86_64.rpm ?: ?校验密钥

rpm ?-e pubkey密钥 ?: 卸载密钥
rpm ?-qa | ?grep gpg ? : ?可以检测到密钥,pubkey密钥
rpm ?--import ?/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release ?: ?手动导入密钥,手动导入后yum安装的时候就不需要进行检测密钥,yum仓库里面的gpgcheck有没有问题都可以安装

模块流管理 ?: ? 为了实现同一个软件包多个版本的问题
satellite-5-client ? 1.0 [d][e]
yum ? module ?list ? : ? 列出所有模块流的包,1.0为软件包的版本,d是default默认的意思,e表示当前生效的版本,即使卸载,下次生效的也是当前生效的版本,带i的是已经安装的
模块流的软件包都在AppStream里面


切换模块流:
1、先删除模块流:yum module remove satellite-5-client
2、重置模块流(会删除模块配置文件):yum module ?reset satellite-5-client
3、安装并启动其他的模块流:yum module install satellite-5-client
注意:如果不删除模块流,直接重置模块流再安装其他模块流时,相应的软件包会进行降级或者升级操作。建议不要直接安装其他模块流,因为升级脚本可能在安装期间运行,从而破坏原始模块流,从而破坏原始模块流,可能会导致数据丢失或其他配置文件


编译源码包
1、检查编译环境,以及编译的配置(安装路径和开启关闭的功能)
./configure ? --with-http_ssl_module(默认是没有需要安装就加上with) ?: 加上https的功能
./configure ? --without-http_ssl_module(默认是安装的不需要就用without去除) : 去除httpds的功能
还需要安装以下包
yum install gcc gcc-c++ make unzip pcre pcre-devel zlib zlib-devel libxml2 libxml2-devel ?readline readline-devel ncurses ncurses-devel perl-devel perl-ExtUtils-Embed openssl-devel
./configure --prefix=/usr/local/nginx(把nginx的资源文件放在该路径下) --with-http_ssl_module

2、在检查编译环境的时候,可以直接执行./configure,看缺什么包直接安装就行。编译
make ?-j 4 ?: ?可启动4个线程进行编译
若make命令找不到,说明编译工具没安装好
#安装make命令的命令
yum -y install gcc automake autoconf libtool make
#查看是否安装成功(在Xshell下)
make -v

3、安装(生成文件,执行脚本)
make install
默认的安装路径是/usr/local/nginx, ./sbin/nginx启动,会监听在80端口,关闭防火墙,然后在网页中输入ip可以直接访问
s ?: ?发送信号
管理nginx
./usr/local/nginx/sbin/nginx -v ?: ?查看版本
./usr/local/nginx/sbin/nginx -s ?reload : 重新加载服务
./usr/local/nginx/sbin/nginx -s ?stop ?: 停止服务
./usr/local/nginx/sbin/nginx ? : ?启动服务
想卸载nginx,直接把/usr/local/nginx包全删了

文章来源:https://blog.csdn.net/weixin_46113061/article/details/135463657
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。