软件包管理
Rpm管理
Rpm包命名规则:
Bind(name)-版本号-发行号.cpu架构.rpm
包之间:可能存在依赖关系,甚至循环依赖
解决依赖包管理工具:
yum:rpm包管理器的前端工具
apt-get:deb包管理器前端工具
zypper: suse上的rpm前端管理工具
dnf: Fedora 18+ rpm包管理器前端管理工具
查看二进制程序所依赖的文件
Ldd /path/to/binary_file
管理及查看本机装在的库文件
Ldconfig 加载库文件
/sbin/ldconfig -p 显示本机已经缓存的所有可用库文件
库文件名及文件路劲映射关系
配置文件:/etc/ld.so.conf /etc/ld.so.conf.d/*.conf
缓存文件:/etc/ld.so.cache
数据库(公共):/var/lib/rpm
获取程序包的途径:
(1) 系统发版的光盘或官方的服务器;
CentOS镜像:
https://www.centos.org/download/
http://mirrors.aliyun.com
http://mirrors.sohu.com
第三方组织:
Fedora-EPEL:
Extra Packages for Enterprise Linux
Rpmforge:RHEL推荐,包很全
Rpm命令:
安装
rpm -ivh tree-1.6.0-10.el7.x86_64.rpm
-i :install ,安装
-v :查看详细的安装过程
-h :以#显示程序包管理执行进度
-vv :查看比-v更详细的安装信息
Install-options
–test :测试安装,但不真正执行安装
–nodeps:忽略依赖关系,进行安装(可能会缺失一些机制,也可能安装后不能使用)
–force: 强制安装
–replacefiles: 当文件已存在时,可以覆盖安装
–oldpackage:降级安装。(不删除原来的版本)
–nosignature:不检查包来源合法性
–nodigest:不检查包完整性
–noscripts:不执行程序包脚本
Rpm2cpio 包文件 |cpio -itv 预览包内文件
rpm2cpio tree-1.6.0-10.el7.x86_64.rpm | cpio -itv
Rpm2cpio 包文件 |cpio -id /path/to/ 指定释放包内文件(丢失文件可以直接从包里释放),可能会导致权限丢失,注意权限问题
rpm2cpio tree-1.6.0-10.el7.x86_64.rpm |cpio -id ./usr/bin/tree
升级
-U –upgrade :如果安装有旧程序包,则升级,没有安装就执行安装
-F –freshen:如果安装有旧程序包,则升级,没有安装就不升级
Rpm -Uvh PACKAGE_FILE
Rpm -Fvh PACKAGE_FILE
注意:
(1) 不要对内核做升级操作;Linux支持多内核版本并存,因此,对直接安装新版本内核
(2) 如果原程序包的配置文件安装后曾被修改,升级时,新版本的提供的同一个配置文件并不会直接覆盖老版本的配置文件,而把新版本的文件重命名(FILENAME.rpmnew)后保留
卸载
Rpm -e PACKAGE_FILE
–nodeps:不检查依赖,直接卸载
如果程序安装之后,对配置文件进行修改,那么在卸载的时候,会自动对修改过的配置文件自动备份(多次卸载也只能保留一份)
查询
Rpm -q PACKAGE_FILE 查询指定的包是否已经安装
Rpm -q: vsftpd
-qa:查询已安装的所有包
Rpm -qa “*tre*” 可以使用通配符(建议使用引号)
-ql:查询指定包安装后生成的文件列表
Rpm -ql vsftpd
-qi:查询指定包的说明信息
-qc:查询指定包的安装的配置文件
安装在/etc/下的文件列表
-qd:查询指定包安装的帮助文件
安装在 /usr/share/doc下的文件列表
–scripts:查询指定包中包含的脚本(自身所带的脚本)
–provides:列出指定程序包所提供的capability
-qR:查询指定的程序包所依赖的capability
-qpl:查询未安装的文件包包含的文件列表
Rpm -qpl PACKAGE_NAME
Rpm -qf /PATH/TO/SOMEFILE:查询指定的文件是由哪个rpm包安装生成的
Rpm -qf /var/ftp/pub
–whatprovides capability:查询指定的capability由哪个包提供
Rpm -q –whatprovides bash:bash这个能力是由哪个包提供
–whatrequires capability:查询指定的capability被哪个包所依赖
Rpm -q –whatrequires bash
创建repodate : createrepo
数据库重建
Rpm数据库位置:/var/lib/rpm
Rpm –initdb :初始化
如果事先不存在数据库,则新建,如果存在,则不做任何操作
Rpm –rebuilddb:重建已安装的包头的数据库索引目录,一定会重新建立
新建的rpm数据库,没有以前的安装信息
校验
Rpm -V PACKAGE_NAME
包来源合法性验正及完整性验正
Rpm -K PACKAGE_NAME
rpm -K|checksig rpmfile 检查包的完整性和签名
完整性验正:SHA256
来源合法性验正:RSA
公钥加密
对称加密:加密、解密使用同一密钥
非对称加密:密钥是成对儿的
public key: 公钥,公开所有人
secret key: 私钥, 不能公开
导入所需要公钥
rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
CentOS 7发行版光盘提供:RPM-GPG-KEY-CentOS-7
rpm -qa “gpg-pubkey*”
卸载密匙
Rpm -e “gpg-pubkey*”
误删除rpm命令,恢复方法
挂载光盘,进入救援模式,进入光盘所在目录/run/install/repo,输入命令
Rpm -ivh RPM-XXXXX.rpm –root=/mnt/sysimage/ 就可以安装。
-root=/mnt/sysimage/ 这里是真正的指向root所在目录
Yum安装
方便的解决rpm包安装时候的依赖性问题
Yum repo :存储仓库,存储了众多rpm包,以及包的相关元数据文件(放置于特定目录repodata下)
构建yum仓库 /etc/yum.conf.d/
Vim base.repo
[base] (仓库表示,唯一,不能重复)
Name=base centos7.4 (描述信息)
Baseurl=file:///misc/cd/ (本地光盘)
http:// 网络地址
https:// 网络地址
ftp:// ftp地址
Gpgcheck=1(默认为1,开启)| 0(关闭)
Enabled={0|1}是否启用此yum仓库,默认启用(0为关闭,1为默认)
# gpgkey=file:///misc/cd/RPM-GPG-KEY-CentOS-7(导入密匙,也可以手动导入)可选
清理yum缓存:yum clean all
查看yum缓存大小:du -sh /var/cache/yum/
清除/var/cache/yum/$basearch/$releasever缓存
构建缓存: yum makecache
Yum命令用法
Yum options command | package
Yum 安装:
Install(localinstall):安装
Yum install vsftp
Reinstall:重新安装
Update(localupdate):升级
Downgrade:降级
-y:自动回答为“yes”
-q:静默模式
–disablerepo=repoidglob:临时禁用此处指定的repo
–enablerepo=repoidglob:临时启用此处指定的repo
–noplugins:禁用所有插件
–nogpgcheck:禁止进行gpg check
检查可用升级:
yum check-update
v 卸载程序包:
yum remove | erase package1 [package2] […]
包组管理的相关命令:
yum groupinstall group1 [group2] […]
yum groupupdate group1 [group2] […]
yum grouplist [hidden] [groupwildcard] […]
yum groupremove group1 [group2] […]
yum groupinfo group1 […]
显示仓库列表
Yum repolist all (所有)| enabled | disabled
显示程序包
Yum list {all |glob_exp1 }
Yum list { available | installed | updates }
包组管理的相关命令:
yum groupinstall group1 [group2] […] 安装组包
yum groupupdate group1 [group2] […] 升级组包
yum grouplist [hidden] [groupwildcard] […] 列出组包
yum groupremove group1 [group2] […] 移除组包
yum groupinfo group1 […]
搜索:yum search string1 [string2] […]
以指定的关键字搜索程序包名及summary信息
Yum日志 : /var/log/yum.log
Yum历史: yum history {undo | info | redo }
yum的repo配置文件中可用的变量:
$releasever: 当前OS的发行版的主版本号
$arch: 平台,i386,i486,i586,x86_64等
$basearch:基础平台;i386, x86_64
$YUM0-$YUM9:自定义变量
可用的网络yum源
阿里云repo文件:http://mirrors.aliyun.com/repo/
v CentOS系统的yum源
Ü 阿里云:https://mirrors.aliyun.com/centos/$releasever/os/x86_64/
v EPEL的yum源:
Ü 阿里云: https://mirrors.aliyun.com/epel/$releasever/x86_64
搭建ftp作为yum源实例(用光盘)
ftp服务器配置:centos 7
关闭防火墙:systemctl stop firewalld
禁用防火墙:systemctl disable firewalld
修改SELINUX: vim /etc/selinux/config
SELINUX=premissive
关闭SELINUX: setenforce 0
查看selinux状态:getenforce
安装vsftp.rpm包: rpm -ivh vsftp(包名)
启动vsftpd服务:systemctl start vsftpd
设为开机启动:systemctl enable vsftpd
创建目录:mkdir /var/ftp/pub/centos/{6,7}/os/x86_64 -pv
将centos7 光盘挂载:mount /dev/sr0 /var/ftp/pub/centos/7/x86_64/
将centos6光盘挂在:mount /dev/sr1 /var/ftp/pub/centos/6/x86_64/
建立yum源:vim /etc/yum.repo.d/base.repo
[base]
Name=ftp
Baseurl=ftp://服务器IP/pub/centos/$releasever/os/$basearch
Gpgcheck=0 (关闭gpg验证)
在pc centos 6配置
关闭防火墙:service iptables stop
开机禁用防火墙:chkconfig iptables off
配置yum源:vim /etc/yum.repo.d/base.repo
[base]
Name=ftp
Baseurl=ftp://服务器IP/pub/centos/$releasever/os/$basearch
Gpgcheck=0 (关闭gpg验证)
配置完成,记得清理yum缓存: yum clean all
下面就可以尝试安装rpm包了
编译安装httpd:
下载httpd源码包:wget 链接地址
解压源码包:tar xvf PACKAGE_NAME
安装包组 :yum groups install Development Tools
查看: cat README
查看configure帮助,了解一些需要独立安装的目录:./configure –help
编译安装: ./configure –prefix=/app/httpd24 –sysconfdir=/etc/httpd24/ –enable=ssl
–enable-proxy-fcgi
看提示,补充安装相应的包
yum install apr-devel apr-util-devel openssl-devel pcre-devel
Make安装: make -j 4 (-j 4:4核cpu同时进行安装)
Make install
配置运行环境:vim /etc/profile.d/httpd24.sh
PATH=/app/httpd24/bin:#PATH
Source /etc/profile.d/httpd24.sh
将man帮助放置于系统文件中:
Vim /etc/man_db.conf(centos7)
添加 MANDATORY_MANPATH /app/httpd24/man
Vim /etc/man.config
添加 MANPATH /app/httpd22/man
启动服务: Apachectl (start)
查看监听端口 :ss -ntl (可以看到80端口已经打开)
修改http内容路径: /app/httpd24/htdocs/index.html
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/89248