安装包管理

   软件包管理

软件的运行和编译

  1. ABI 由于window和linux不兼容 linux是ELF window 是PE 对应的内核解析方式不同,可以用虚拟化
  2. API 只程序与程序的公用的接口,相互调用方式
  3. 程序源代码 –>预处理–>编译–>汇编–>链接
  4. 预处理只会引入相对于的文件,不会检查语法,但预处理检查语法,链接的库文件可以为动态编译文件.so 和静态编译文件.a,链接分为静态链接和动态链接
  5. 二进制应用程序的组成部分:二进制文件,库文件,配置文件,帮助文件
  6. 程序包管理器 rpm :Redhat Package Manger
  7. rpm的包名的命名方式 name-VERSION-release.arch.rpm 
      > bash-4.2.46-19.el.x86_64.rpm  版本号,企业备注,系统试用
  8. 包的分类和拆包VERSION主包 devel 开发包 utils 其他包 libs 相关其他包
  9. 包之间存在依赖关系,解决方式rpm包管理的前端工具, dnf包管理的前端工具
  10. 查看 二进制 程序所依赖的库文件
      > ldd /bin/ls
  11. 管理及查看本机装载的库文件 ldconfig ,, /sbin/ldconfig -p 显示本机已经缓存的所有可用库文件
  12. 库文件的配置 /etc/ld.so.conf ,/etc/ld.so.conf.d/*.conf
  13. 缓存文件:/etc/ld.so.cache

程序包管理

功能:将编译好的应用程序的各组成文件打包一个或几个程序包文件,从而方便快捷的实现程序包的安装,卸载,查询,升级,和校验等管理操作
1. 包文件组成(每个包独有)RPM包内的文件和元数据,如名称,版本,依懒性,描述
2. 数据库(公共):/var/lib/rpm 程序包的名称及版本依赖关系,功能说明,安装后生产的校验码信息
3. 管理程序包的方式,,使用包管理器:rpm 使用前端工具:yum ,dnf

获取程序包的途径:

  1. 系统发版的光盘或官方的服务器
    > centos镜像 http://www.centos.org/download/ ,https://mirrors.aliyun.com/centos/7.3.1611/isos/x86_64/,https://mirrors.sohu.com/centos/7.3.1611/isos/x86_64/
  2. 第三方组织
    > RHEL推荐,包很全,搜索引擎 http://pkgs.org
    > 第三方包建议要检查合法性,来源合法性,程序包的完整性
  3. 自己制作

安装包操作(完整的文件名 路径)

> rpm -ivh PACKAGE _FILE
 
 | 参数 | 用途 | 
 | —-   | —-:  | :—:  |
 | i    | 安装 |
 | v    | 显示安装过程|
 | h    | 显示执行进度 |
 | –test |测试安装
 |–replacepkgs|–replacefiles
 |–nodigest   |不检查包完整性
 |–noscript|不执行程序包脚本
 |%pre:安装前脚本|–nopre
 |%post:安装后脚本|–nopost
 |%preun:卸载前脚本|–nopreun
 |%postun:卸载后脚本|–noposttun
 
 —–
 升级
 1. rpm -U ,upgrade :安装有旧版本程序包,则‘升级’,不存在就安装 rpm -Uvh PACKAGE_FILE
 2. rpm -F,freshen 安装有旧版程序包,则安装,如何不存在就不执行升级操作
rpm -Fvh PACAGE 
–oldpackage 降级 –force 强制安装

 包查询 rpm -q(已安装的包)

 | 参数 | 用途 | 
 | —-   | :—-|—:|
 |–changelog|查询rpm包的changelog
 |-c|查询程序的配置文件
 |-d|查询程序的文档
 |-i|information
 | l|查看指定的程序包安装后生成的所有文件(包名)
 |–scripts|程序包自带的脚本
 |–provides|列出指定程序包所提供的CAPAB
 |–R|查询指定的程序所依赖的CAPABILITY
 |-a|所有包
 |-f|查看指定的文件由哪几个程序包安装生成(路径+包名)
 |-p|针对尚未安装的程序包文件做查询操作
 |–whatprovides|查询指定的capabilitv由哪几个包所提供
 |–whatrequires |查询指定的capab被哪个包所依赖
  
  <br />
&nbsp; rpm -ivh /path/文件名/.rpm 包名<br />
&nbsp; rpm -q ftp &amp;&gt;/dev/null ||yum -y install ftp (包名)<br />
&nbsp; rpm -e 包名(卸载)<br />
&nbsp; rpm -qi(包名)<br />
&nbsp; rpm -qpi /path/文件名.rpm<br />
&nbsp; rpm -qf /path/文件名<br />
&nbsp; rpm -ql 包名<br />
&nbsp; rpm -q --scripts 包名<br />
&nbsp; -k 文件名 验证签名<br />
&nbsp; --import /etc/pki/rpm-gpg/<br />
&nbsp; -V 包名<br />
&nbsp;&nbsp;<br />
&nbsp; which java &nbsp;-&gt;/usr/bin/java<br />
&nbsp; rpm -qf /usr/bin/java<br />
&nbsp; rpm -q --whatprovides java<br />
&nbsp;

rpm2cpio  

> rpm2cpio 包文件|cpio -itv 预览包内文件

rpm2cpio 

> rpm2cpio 包文件|cpio -id “.config” 释放包内文件

包卸载(卸载包名)

> rpm -e PACKAGE 包卸载 不能卸载包的依赖关系 

包校验

> rpm -V 包名 rpm -V tree  (修改包名里面的内容,检测)

 | 参数 | 用途 | 
 | —-   | —-:  | :—:  |
 |s |file size |大小
 |5|digest|md5 加密
 |D|Device major|设备信息
 |L|readLink|链接信息
 |U|user ownership|用户信息
 |G|group ownership|组信息
 |T|mtime differs|时间差异
 

包校验

  1.  来源合法性验证及完整性验证
  2.  完整性验证:SHA256 来源合法性验证:RSA
  3.  公钥加密:对称加密:加密/解密使用同一密钥  public key :公钥,公开所有人 secret key :私钥 ,不能公开
  4.  导入所需要的公钥
  5.  rpm-k|checksig rpmfile 检查包的完整性和签名
  6.  rpm –import /etc/pki/rpm-gqp/RPM-GPG-KEY-centOS-7
  7.  Centos 7 发行版光盘提供:RPM-GPG-KEY-Centos-7
  8.  rpm -qa “gpg-pubkey”

数据库的重建

> /var/lib/rpm   rpm –initdb :初始化

——

yum 安装

yum:yellowdog update modifier ,rpm 的前端程序,可解决软件包相关依懒性,可以在多个库之间定位软件包
1. yum repository:yum repo 储存了众多rpm包,以及包的相关的元数据文件(放置在特定目录repodata下)
2. 文件服务器 ftp://   http://  file://
3. yum客户端配置文件
>  /etc/yum.conf :为所有仓库提供公共配置 
>  /etc/yum.repos.d/*.repo 为仓库的指向提供配置

 | 参数 | 用途 | 
 | —-   | —-:  | :—:  |
 |name|some name for |名字
|baseurl|url://path/to/reposi| 安装源来源
|enable|(1,0)|是否禁止
|gpgkey|URl|签名信息
|enablegroup=(1,0)|安装群

yum的repo配置文件中可用的变量

 | 参数 | 用途 | 
 | —-   | —-:  | :—:  |
 |$releasever|当前OS的发行版的主版本号
 |$arch|平台,i386,i486
 |$basearch|基础平台,i386
 
 <br />
&nbsp;http://server/centos/$releasever/$basearch/<br />
&nbsp;http://server/centos/7/x86_64<br />
&nbsp;http://server/centos/6/i384<br />
&nbsp;

 —–
 1. 阿里云repo文件 http://mirrors.aliyun.com/repo/
 2. centos系统yum源 阿里云:https://mirrors.aliyun.com/centos/$releaserver/os/x86_64
 3. 教学环境 http://172.16.0.1/cobbler/ks_mirror/$releaserver/
 4. 生成172.16.0.1_cobbler_ks_mirror_CentOS-x-x86_64_repo
> yum-config-manager –add-repo=http://172.16.0.1/cobber/ks_mirror/7/
 5. yum-config-manager –disable “仓库名” 禁用仓库
 6. yum-config-manager –enable “仓库名” 启用仓库
 
 —–

yum命令

  1. yum list [all | glob_exp1] 显示所有的yum
  2. yum repolist[all |enable |disable] 显示安装的仓库
  3. yum install package 安装包
  4. yum reinstall package 重新安装包
  5. yum updata package 升级包
  6. yum downgrade package 降级包
  7. yum check-update 检查可用升级
  8. yum remove  | erase package 卸载程序包(删除依赖包名)
  9. yum info package 查看程序包信息
  10. yum provides |whatprovides feature 查看指定的特征(可以是莫文件)是哪个程序包提供
  11. yum clean [all|packages] ,,,,/var/cache/yum/$basharch/$releasever  缓存
  12. yum makecache 构建缓存
  13. yun search string 以指定的关键字搜索程序包及summary信息
  14. yum deplist package1 查看指定包所依赖的capailities

 yum 事务历史

  1. yum history [info | list | packages-info]
  2. yum history 查看历史记录
  3. yum history info 6 查看指定的历史
  4. yum history undo 6 删除安装的包,安装以前的包

日志文件

> /var/log/yum.log

包组管理的相关命令

  1. yum grouplist group1 查看包内容
  2. yum groupinstall group1 组安装
  3. yum groupupdate group1 升级包
  4. yum groupremove group1 移除包
  5. yum groupinfo group1 包信息

yum的命令行选项

  1. –nogpgcheck ;禁止进行gpg check
  2. -y :自动回答’yes’
  3. -q :静默模式
  4. — disablerepo=repoidglob 临时禁止用此指定的repo
  5. — enablerepo=repoidglob 临时启用此处指定的repo
  6. –noplugins 禁止所有插件

系统安装光盘作为本地yum仓库

  1. 挂载光盘至莫个目录 /media/cdrom
    > mount /dev/cdrom /media/cdrom
    2 创建配置文件
    <br />
    [Cenros7]<br />
    name=<br />
    baseurl=<br />
    gpgcheck=<br />
    enable=<br />
    <br />
    ls /misc/<br />
    cd /misc<br />
    cd cd/<br />
    df<br />
    <br />
    [base]<br />
    baseurl=file://misc/cd<br />
    <br />
  2. 创建yum仓库
    > createrpo [options]

    <br />
    df 查看磁盘<br />
    rpm -q kernel 查看内核<br />
    uname -r 内核名<br />
    yum update kernel 升级kernel<br />
    <br />
    yum list | grep vsftpd<br />
    yum clean all<br />
    <br />
    <br />

原创文章,作者:zhangguanglei,如若转载,请注明出处:http://www.178linux.com/74159

(0)
zhangguangleizhangguanglei
上一篇 2017-04-24 22:25
下一篇 2017-04-24 22:31

相关推荐

  • LAMP 基于httpd 2.4

    一 安装前准备 说明 操作系统:CentOS 7 64位 Apache 版本:httpd-2.4.6-40.el7.centos.x86_64 httpd服务器ip:192.168.1.4   1.  配置好IP、DNS 、网关,确保使用远程连接工具能够连接服务器 2.     &nbsp…

    Linux干货 2016-04-05
  • N21第五周

    1.显示/boot/grub2/grub.cfg中以至少一个空白字符开头的行; ]# grep '^[[:space:]]\+' /boot/grub2/grub.cfg 2.显示/etc/rc.d/init.d/functions文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行; ]#…

    Linux干货 2016-08-15
  • 马哥教育网络班N22期+第5周课程练习

    马哥教育网络班N22期+第5周课程练习 1. 显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;  grep -E "^[#][[:space:]]+[^[:space:]].*" /etc/rc.d/rc.sysinit 2. 显示…

    Linux干货 2016-09-19
  • N28-第二周

    1. Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。
    2. bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。
    3. 請使用命令行展開功能來完成以下練習:
    (1) 創建/tmp目錄下的a_c、a_d、b_c、b_d。
    (2) 創建/tmp/mylinux目錄下的bin、boot/grub、dev、etc/rc.d/init.d、etc/sysconfig/network-scripts、lib/modules、
    lib64、proc、sbin、sys、tmp、usr/local/bin、usr/local/sbin、var/lock、var/log、var/run目錄。
    4. 如何查看文件的元數據,其信息有哪些,分別表示什麼含意?如何修改文件的時間戳信息?
    5. 如何定義一個命令的別名?如何在命令中引用另一個命令的執行結果?
    6. 顯示/var目錄下所有以L小寫開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。
    7. 顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。
    8. 顯示/etc目錄下,以非字母開頭,後面跟了一個字母以及其他任意長度任意字符的文件或目錄。
    9. 在/tmp目錄下創建以tfile開頭,後跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。
    10. 複製/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。
    11. 複製/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。
    12. 複製/etc目錄下所有以L小寫或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。

    Linux干货 2017-12-14
  • N21_第8周_网络

    N21_第8周_网络 作业题目: 1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。     网桥:(Bridge)也称桥接器,是连接两个局域网的存储转发设备,用它可以完成具有相同或相似体系结构网络系统的连接。       &nbs…

    Linux干货 2016-10-09
  • 教你使用rpm、yum、编译等方式安装软件

    一、什么是包管理器?     很多人都不知道包管理器的概念,首先我们要了解软件是如何运行的,我们这里介绍C程序如何实现从代码到执行程序的过程。         程序源代码–> 预处理–> 编译&#8211…

    Linux干货 2016-03-09

评论列表(1条)

  • renjin
    renjin 2017-04-28 11:53

    主要介绍了程序包的安装和管理,内容写的很精细,排版也很好,继续努力!