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包全删了
原文地址:https://blog.csdn.net/weixin_46113061/article/details/135463657
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!