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

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包全删了

你可能感兴趣的:(运维,Linux系统,linux,运维)