linux之程序包管理
Linux程序包管理
API: Application Program Interface
ABI: Application Binary Interface
程序包管理器:
源代码->目标二进制格式(二进制程序、库文件、配置文件、帮助文件) ->组织成为一个或有限几个“包”文件
安装、升级、卸载、查询、校验
程序包管理器:
deblan:dpt
redhat::rpm,.rpm
前端工具:
yum:rpm包管理器的前端工具
apt-get:deb包管理器前端工具
程序包管理器
功能:将编译好的应用程序的各组成文件打包成一个或几个程序包文件,从而更方便地实现程序包的安装、升级、卸载和查询等管理操作
1.程序包的组成清单(每个程序包都单独实现)
文件清单
安装卸载时运行的脚本
2、数据库(公共)
程序包的名称和版本
依赖关系
功能说明
安装生成的各文件的文件路径及校验码信息
/var/lib/rpm/
获取程序包的路径:
系统发行版的光盘或官方文件服务器(镜像站点)
项目的官方站点
第三方组织
建议:检查其合法性
来源合法性
程序包的完整性
CentOs系统上rpm命令管理程序包:
安装、升级、卸载、查询和校验、数据库维护
rpm命令: rpm [OPTIONS] [PACKAGE _FILEI]
安装:-l
升级:-U
卸载:-e
查询:-q
效验:-V
rpm -lvh PACKAGE, FILE
GENERAL OPTIONS
-V: verbose, 详细信息
-vv:更详细的输出
注:不要对内核进行升级,直接安装新内核
YUM
yum工具
CentoS: yum, dnf
YUM: yellow dog, Yellowdog Update Modifier
yum repository: yum repo
存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录下: repodata)
yum客户端:
配置文件:
/etc/yum.conf:为所有仓库提供公共配置
/etc/yum.repos.d/*.repo:为仓库的指向提供配置
仓库指向的定义:
[repositoryID]
name =Some name for this repository
baseurl=url://path/to/repository/
enabled={1 |0}
gpgcheck={1|0}
gpgkey=URL
enablegroups={1|0}
failovermethod={ roundrobin|priority}
默认为:roundrobin,意为随机挑选
cost=
默认为1000
yum仓库列表:
repolist
显示程序包:
list
安装程序包:
install
reinstall(重新安装)
升级程序包:
update
检查可用升级:
check- update
卸载程序包:
remove
查看程序包information:
info [...]
清理本地缓存:
clean
如何使用光盘当作本地yum仓库:
(1)挂载光盘至某目录,例如/ media/cdrom
mount -r -t iso9660 /dev/cdrom /media/cdrom
(2)创建配置文件
[CentOS7]
name=
baseurl=
gpgcheck=
enabled=
yum的命令行选项:
--nogpgcheck:禁止进行gpg check
-y:自动回答为“yes”
-q:静默模式:
yum的repo配置文件中可用的变量:
$releasever:当前OS的发行版的主版本号
$arch:平台
$basearch:基础平台
yum仓库的创建:
createrep [options] <directory>
程序包编译安装:
testapp-VERSION-release.src.rpm--->安装后,使用rpmbuild命令制作成干进制格式的rpm包,而后再安装
编译安装三步骤:
. / configure:
(1)通过选项传递参数,指定启用特性、安装路径等;执行时会参考用户的指定以及Makefile.in文件生成makefile:
(2)检查依赖到的外部环境
make:
根据makefil文件,构建应用程序
make install