转载 https://www.cnblogs.com/sstjustdoit/p/10068322.html
程序包管理
程序源代码-->预处理--> 编译-->汇编-->链接
静态编译:
共享编译:.so
ABI:Application Binary Interface
系统级开发
C++
应用级开发
java
Python
php
程序包管理器
debian:deb, dpt
redhat:rpm, rpm
源代码:name-VERSION. tar. gz
VERSION:major minor. release
查看二进制程序所依赖的库文件:
ldd /PATH/T0/BINARY FILE
管理及查看本机装载的库文件:
ldconfig
/sbin/ldconfig -p:显示本机已经缓存的所有可用库文件名及文件路径映射关系:
配置文件为:/etc/1d.so. conf, /etc/ld. so. conf .d/* . conf
缓存文件:/etc/ld. so. cache
程序包管理:
功能:将编译好的应用程序的各组成文件打包一个或几个程序包文件,从而方便快捷地实现程序包的安装、卸载、查询、升级和校验等管理操作:
1、程序的组成组成清单(每个包独有)
文件清单
安装或卸载时运行的脚本
2、数据库(公共)
程序包名称及版本
依赖关系:
功能说明:
安装生成的各文件的文件路径及校验码信息:
管理程序包的方式:
使用包管理器:rpm
使用前端工具:yum, dnf
获取程序包的途径:
(1)系统发版的光盘或官方的服务器:
CentOS镜像:
http://mirrors . aliyun. com
http://mirrors . sohu. com
http://mirrors .163. com
(2)项目官方站点
(3)第三方组织:
Fedora-EPEL I
搜素引擎:
http://pkgs .org
http://rpmf ind . net
http://rpm. pbone . net
(4)自己制作
Cent0S系统上rpm命令管理程序包:
安装、卸载、升级、查询、校验、数据库维护
安装:
rpm {-1|--instal1} 【install-options】 PACKAGE FILE
-V:verbose
-VV :
-h:以#显示程序包管理执行进度:每个#表示2%的进度
rpm -ivh PACKAGE FILE
【install-opt ions 】
--test:测试安装,但不真正执行安装过程:dry run模式:
--nodeps:忽略依赖关系:
--replacepkgs:重新安装:
--nosignature:不检查来源合法性:
--nodigest:不检查包完整性:
--noscipts:不执行程序包脚本片断:
升级:
rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
upgrage:安装有旧版程序包,则“升级”:如果不存在旧版程序包,则“安装”;
freeshen:安装有旧版程序包,则“升级”:如果不存在旧版程序包,则不执行升级操作:
rpm -Uvh PACKAGE FILE
注意:(1)不要对内核做升级操作:Linux支持多内核版本并存,因此,对直接安装新版本内核:
(2)如果原程序包的配置文件安装后曾被修改,长级时,新版本的提供的同一个配置文件并不会直接厦盖老版本的配置文件,而把新版本的文件重命名(FILENAME . rpmnew)后保留;
查询
rpm {-q|--query} [select-options] [query-options]
[select-options]
-a所有包
-f:查看指定的文件由哪个程字包安装生成
-p package_filename:针对尚未安装的程序包做查询操作
--whatprovides CAPABILITY:查询指定的CAPABILITY由哪个包所提供:
--whatrequires CAPABILITY:查询指定的CAPABILITY被哪个包所依赖:
[query-options]
卸载
rpm {-e|--erase} [--allmatches] [--justdb] [--nodeps] [--noscripts]
[--notriggers] [--test] PACKAGE_NAME ...
导入所需要公钥:
rpm -- import /PATH/FROM/GPG PUBKEY-FILE
CentOS 7发行版光盘提供的密钥文件:RPM-GPG-KEY-Cent0S-7
数据库重建:
rpm {--initdb| -- rebui lddb}
initdb:初始化
如果事先不存在数据库,则新建之:香则,不执行任何操作:
rebuilddb:重建
无论当前存在与否,直接重新创建数据库:
三、yum
yum工具通过仓库的方式简化rpm包的管理。它从仓库中搜索相关的软件包,并自动下载和解决软件包的依赖性,非常方便。yum底层依赖rpm,如果把rpm卸载,那么yum也不能用了
老王说:
利用yum的主要问题:
(1)配置文件格式语法错误;
(2)缓存问题
yum客户端配置文件:
/etc/yum.conf # 为所有仓库提供公共配置
/
/etc/yum.repos.d/*.repo # 为仓库的指向提供配置
[
6.find . -name '*yum.conf*'
[root@CentOS7 ~]#cat /etc/yum.conf
[
[main]
c
cachedir=/var/cache/yum/$basearch/$releasever # 缓存文件夹路径
$$basearch # cpu架构,X86_64等
$releasever # 系统版本
k
keepcache=0 # 0代表不缓存rpm包,下载安装后默认删除;1为缓存rpm安装包
d
debuglevel=2 #
l
logfile=/var/log/yum.log # yum安装的日志文件
e
exactarch=1 #
o
obsoletes=1
g
gpgcheck=1 # 默认1代表安装包的完整性合法性为nokey是直接拒绝安装
p
plugins=1
i
installonly_limit=5
b
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
d
distroverpkg=centos-release
自己搭建一个yum配置文件
vim /etc/yum.repo.d/base.repo # 两个必须:1必须在/etc/yum.repo.d/这个文件夹下;2.文件名必须以.repo结尾;一般习惯将光盘建的yum库命名为base [base] # 不允许有空格 name=cdrom baseurl=file:///mnt/cdrom/ # 一般是repodata的父目录,文件路径不允许有空格,支持http:// https:// ftp:// file:// # 此地址可以添加多个地址,在多个地址的情况下,可以将全部地址保存在一个文本文件中,而此处的baseuer换成 mirrorlist=file:// 文件路径 gpgcheck=0 # 0默认为不进行gpgcheck检查完整性 以上这些是必须项,
也可以通过命令直接生成该配置文件:
yum-config-manager --add-repo=BASEURL # 即自动生成该网址的repo配置文件
y
yum-config-manager --disable “仓库名" # 禁用仓库
y
yum-config-manager --enable “仓库名” # 启用仓库
搭建完yum配置文件即可使用yum安装了。
[aliyunepel] name=aliyun-epel baseurl=https://mirrors.aliyun.com/epel/7/x86_64/ gpgcheck=0 # 这样就又搭建了一个阿里云的epel的yum库
查看yum历史事务:
yum history [info|list| packages-list| packages-info| summary | addon-info | redo | undo | rollback | new|sync| stats] yum history # 查看历史记录 yum history info 6 # 查看yum历史记录第六条的详细信息
利用yum安装rpg包:
yum install rpmfile1 [rpmfile2] [...] #
yum update rpmfile1 [rpmfile2] [...]
yum的一些命令选项:
yum的命令行选项: --nogpgcheck:禁止进行gpg check -y: 自动回答为“yes” -q:静默模式 yum -y -q :需要分开写
systemctl stop firewalld # 关闭防火墙 systemctl disable firewalld # 关闭开机自动启动防火墙
1631

被折叠的 条评论
为什么被折叠?



