程序包管理

 转载   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 # 关闭开机自动启动防火墙

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值