首页 > 代码库 > Linux 软件包管理
Linux 软件包管理
linux程序包管理:
API:数据接口
ABI:应用程序二进制接口
库级别的虚拟化:
linux:wine
windows:cywin
系统级开发: c/c++ :httpd,nginx,vsftpd,go
应用级开发:java python perl php
c/c++程序格式:
源代码:文本格式的程序代码;
编译开发环境:编译器,头文件,开发库
二进制格式:文本格式的程序代码–>编译器–>二进制格式
开发环境:编译器,开发库
程序包管理器:
源代码–>目标二进制格式–>组织成为一个或有限几个“包”文件;
协助安装,升级,卸载,查询,校验
程序包管理器
debian: dpt,dpkg “.deb”
rehat : rpm “.rpm”
suse : rpm,
前段工具:自动解决依赖关系:
yum:rpm包管理的前段工具
apt-get:deb包管理器的前段工具
zypper:suse的rpm管理器前端工具
dnf:也是一种rpm包管理器的前端工具
查看二进制程序所依赖的库文件 ldd /PATH/TO/BINARY_FILE
获取程序包的途径:
系统发行版的光盘或官方的文件服务器(或镜像站点)
http://mirrors.aliyun.com
http://mirror.sohu.com
http://mirror.163.com
项目的官方站点
第三方组织:EPEL
搜索引擎:http://pkgs.org
http://rpmfind.net
http://rpm.phone.net
自己动手,丰衣足食
建议:检查其合法性
来源合法性
程序包的完整性
centos系统上rpm命令管理程序包:
安装,升级,卸载,查询和校验,数据库维护
rpm命令:
-i :安装
-u :升级
-e :卸载
-q :查询
-v :校验
–builddb:数据库维护
–test:测试安装,检查并报告依赖关系及冲突消息等
–nodeps:忽略依赖关系,不建议
–replacepkgs:重新安装
升级:
rpm -u :升级或安装
-f :只升级
rpm -uvh
–oldpackage: 降级
–force : 强制升级
注意:(1)不要对内核做升级操作,linux支持多内核版本并存,因此,直接安装新版本
(2)如果某原程序包的配置文件安装后曾被修改过,升级时,新版本的程序提供的同一个配置文件不会覆盖原版本的配 置文件,而是把新版本的配置文件重命名后提供;
卸载: 直接给包名即可
rpm -e :卸载
–allmatches:卸载所有匹配指定名称的程序包的各版本
–nodeps :忽略依赖关系
–test : 测试卸载
查询: rpm -qa -qc -ql 等
rpm -q :查询
-a :查询所有已经安装过的包
-f file :查询指定的文件由哪个程序包安装生成
-l :程序包安装生成的所有文件列表
-i : 程序包相关信息,版本号,大小,所属的包组等
-c : 查询指定的程序包提供的配置文件
-d : 查询指定的程序包提供的文档
-p : 指定未安装的包文件做查询操作
校验: rpm -v filenam
包来源合法性验证和完整性验证:
获取并导入信任的包制作者的秘钥
验证:
安装此组织签名的程序时,会自动执行验证;
手动验证:rpm -k packagefile
数据库重建:
rpm管理器数据库路径:/var/lib/rpm rpm –initdb 初始化 如果 事先不存在数据库,则新建之否则
查询操作:通过此处的数据库进行; rpm –rebuliddb 重建已安装的包的数据库索索引
获取帮助:
man rpm centos6
man rpmdb centos7
YUM: Yellowdog Update Modifier ,rpm 的前端程序,可解决软件包相关依赖性,可在多个库之间定位软件包,up2date
的替代工具
yum repository: yum repo ,存储了众多rpm 包,以及包的相关的元数据文件(放置于特定目录repodata 下)
文件服务器:
ftp://
http://
file://
yum 客户端配置文件:
/etc/yum.conf :为所有仓库提供公共配置
/etc/yum.repos.d/*.repo :为仓库的指向提供配置
配置格式: [repositoryID]
baseurl=ftp:// 或者http:// file://
gpgcheck=0 不检查签名
yum repolist 检查是否成功 ,会显示具体信息
ftp服务器创建yum源:
rpm -ivh /mnt/P… vsftp 安装FPT服务
service vdftpd start 开启FTP服务
systemctl start vsftpd.service centos7 开启FPT
iptables -F 清除防火墙
-vnL 查看防火墙
setenforce 0 禁用selinux
mkdir /var/ftp/pub/6 光碟挂载路径
mount -o loop centos.iso /var/ftp/pub/ 生产
mount –bind /misc/cd/ /var/ftp/pub/ 实验
http://server/centos/$releasever/$basearch/ 通用格式
经过查找帮助: 以上设置最好设置开机自动启动:
开机自动挂载光碟:/etc/fstab
格式 /dev/cdrom /var/ftp/pub/ iso9660 auto 0 0
自动开启FPT服务:chkconfig vsftpd on
自动关闭防火墙: chkconfig iptables off
开机关闭selinux:vim /etc/sysconfig/selinux 把第七行改成permissive (打开文件里面有说明的)
yum history 查看以前yum安装信息
yum history info # 具体查看某信息
yum history undo # 撤销#此次操作, 可以把曾经安装过的依赖包都卸载
Linux 软件包管理