软件包管理

软件包管理

在linux中有人多的软件使用,比如我们使用的ifconfig,fdisk,btrfs文件系统等。可能这些软件在你原有的linux系统中并不存在,那么我们如何去使用这些工具呢。我们知道windows在需要软件的时候需要安装,当然对于linux系统一样需要安装。在linux下常用的安装工具我们使用的是rpm程序包(当然我们这边是针对CentOS而言),那么什么是rpm,如何安装rpm包以及使用rpm包做一些操作等,在下面的内容中将提到。


一、杂项知识整理

1、二进制应用程序的组成部分:二进制文件、库文件、配置文件、帮助文件。

程序包管理器:debiandeb文件,dpkg包管理器

redhat:rpm文件,rpm包管理器

rpm:Redhat Package Manager

RPM Package Manager

2、源代码包:name-VERSION.tar.gz

VERSION:majorminorrelease

rpm包命名格式:name-VERSION-release.arch.rpm

3、ldd 查看二进制程序所依赖的库文件

ldconfig是一个动态链接库管理命令,用途主要是在默认搜寻目录/lib/usr/lib以及动态库配置文件/etc/ld.so.conf内所列的目录下搜索出可共享的动态链接库,进而创建出动态装入程序所需的连接和缓存文件,缓存文件默认为/etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表。linux下的共享库机制采用了类似于高速缓存的机制,将库信息保存在/etc/ld.so.cache里面,程序连接的时首先从这个文件里面查找,然后到ld.so.conf的路径里面去详细找,ldconfig通常在系统启动时运行,而当用户安装了一个新的动态连接库时,就需要手动运行这个命令。

4、导入公钥:rpm -K|checksig rpmfile 检查包的完整性和签名

rpm –import  /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

卸载公钥认证:首先查出使用了那个校验包,rpm -qa gpg*

rpm -e 卸载

 

二、详细命令或事例

1、rpm包管理:安装、卸载、升级、查询、校验、数据库维护

安装:rpm -i packagename

-v详细信息

-vv 更加详细的信息

-h 以#显示进度,每个是2%

–test 测试安装

–nodeps 无视依赖关系,不建议

–replacepkgs 重新替换安装;不替换配置文件

rpm的自带脚本:

–noscripts 不执行程序包脚本片段

preinstall安装过程开始之前运行%pre–nopre

postinstall 安装完成之后运行%post–nopost

postuninstall:卸载完成之后执行%postun–nopreun

preuninstall:卸载过程真正开始之前执行%preun–nopostun

–nosignature 不检查包签名,即不检查来源合法性

–nodigest 不检查包完整性信息

升级:rpm -U/-Fvh packagename

–oldpackage 降级

–force 强制

注意:不要对内核做升级操作;Linux支持多内核版本并存,因此,直接安装新版本内核;

如果某原程序的配置文件安装后曾被修改过,升级时,新版本的程序提供的同一个配置文件不会覆盖原有,而是把新版本的配置文件重命名为FILENAME.rpmnew后提供,即保留原有,命名新文件。

卸载:rpm -e name 直接使用包名即可

–allmatches 卸载所有匹配指定名称的程序包的各种版本

–nodeps 忽略依赖关系

–test 测试卸载,dry run模式

查询:rpm -q name

-a 查询所有已经安装过的包

-p package 用于未安装的程序包执行查询操作

–whatprovides CAPABILITY 查询指定的功能由哪个程序包提供

–whatrequires CAPABILITY 查询指定的CAP被哪个包所依赖

–changelog 查询rpm包的改进日志

-qi 程序包相关信息

-ql 程序安装生成的所有文件列表

-qc 查询指定的程序包提供的配置文件

-qd 查询指定的程序包提供的文档

–provides 列出程序包提供的CAPABILITY

-qf 查询指定的文件由哪些安装包生成

-qpi(l d c)用于查询指定的未安装的rpm

校验:rpm -V name 包名

校验信息S 文件大小size

M 文件元数据改变

5 MD5校验改变

D 设备主次代码已经改变

L link路径已经改变

T 文件的创建时间被改变

P 文件功能改变

数据库重建:rpm -initdbrebuilddb) 只能重建文件,不能重建保存的数据。

2、yumyellowdog update modifierrpm的前端程序,用来解决软件包相关依赖性,可以在多个库指基金按定位软件包。up2date的替代工具。

命令行选项:–nogpgcheck:禁止进行gpg check

       -y 自动回答为yes

       -q 静默模式

       –disablerepo=repoidglob临时禁用此处指定的仓库

       –enablerepo=repoidglob临时启用此处指定的仓库

       –noplugins 禁止所有插件

配置yum仓库:ftp//   http//    file//

配置文件:/etc/yum.repos.d/*.repo

文件名必须是.repo为结尾,名字自定;内容:

[name]定义名称,中括号必须有

name=定义名字

baseurl:http//

enabled=1|0  

gpgcheck=1|0

1为启用,0为禁用,不写也为启用

gpgkey=file:///etc/pki/….

enablegroups=1|0

failovermethod=roundrobin|priority

默认是roundrobin,随机挑选

priority:cost=   默认是1000,越小优先级越高

显示仓库列表:yum repolist [all|enabled|disabled]

显示程序包:yum list [all|glob_exp1][glob_exp2]…

安装程序包:yum install package1…

        reinstall 重新安装  

    升级程序包:yum update package…

    降级程序包:downgrade package…

    检查可用升级:yum check-update 

    卸载程序包:remove | erase package…

    查看程序包infomation:yum info package…

    查看指定的特性(可以是某文件)是由哪个程序包所提供:yum provides| whatprovides feature1…

    清理本地缓存:yum clean [all|packages|metadata|expire-cache|rpmdb|plugins]

    构建缓存:yum makecache

    搜索:yum search string1…以指定的关键字搜索程序包名及summary信息

    查看指定包所依赖的能力:yum deplist package1…

    查看yum事务历史:

        yum history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]

        yum history info 6

        yum history undo 6 取消第6步的操作,若是安装则安装卸载,若为卸载则执行安装

    日志:/var/log/yum.log

    包组管理:

    yum grouplist 

    yum groupinstall group1…

    yum groupdate group1…

    yum groupremove group1…

    yum groupinfo group1…

3、yum仓库

    yum的repo配置文件中可以使用变量:如下变量可以使用

        $releasever 当前OS的发行版的主版本号

        $arch 平台,x86_64等

        $basearch 基础平台

        $YUM0-YUM9:自定义变量

例如:配置如下几个仓库:

     http://10.1.0.1/cobbler/ks_mirror/CentOS-6-x86_64/

    http://10.1.0.1/cobbler/ks_mirror/CentOS-6-i386/

    http://10.1.0.1/cobbler/ks_mirror/CentOS-7-x86_64/

  则根据不同的服务器平台和版本号的不同,可以使用同样的仓库配置:

    baseurl=http://10.1.0.1/cobbler/ks_mirror/CentOS-$releasever-$arch/

创建yum仓库:首先在目录中放入rpm包,使用命令createrepo创建:

    createrepo /PATH,或直接在指定目录下执行createrepo

执行成功后生成repodata的目录,则创建成功,配置仓库时baseurl=绝对路径名。


三、课后练习

1、配置yum源:

[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$in
fra
baseurl=http://10.1.0.1/cobbler/ks_mirror/CentOS-7-x86_64/
        file:///media/cdrom
    http://mirrors.aliyun.com/centos/$releasever/os/$basearch
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

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

(0)
SilencePavilionSilencePavilion
上一篇 2016-08-19 11:28
下一篇 2016-08-19 11:50

相关推荐

  • Linux命令中特殊符号的用法

    Linux命令中特殊符号的用法 在马哥教育学习了将近一周的Linux运维,由最初对Linux系统的一无所知,到了解了Linux的发展历程,学习了一些基本命令,惊叹于Linux的强大功能。下面根据我学到的,介绍一下关于Linux命令中特殊符号的用法。 $的用法 1.$()或’’引用命令执行的结果 例如:如果我们想要创建一个以当前日期命名的目录,可以执行 #mk…

    2017-07-15
  • 计算机基础知识及基本命令(20170214)

    计算机基础知识 操作系统相关 linux分区介绍 安装linux linux基本命令    一、计算机基础知识       计算机(computer):计算机(Computer):俗称电脑,是一种能接收和存储信息,并按照存储在其内部的程序对海量数据进行自动、高速地处理,然后把处理结果输出的现代化智能电子设备 …

    Linux干货 2017-02-14
  • M20-1权限作业

    1、当用户xiaoming对/testdir 目录无执行权限时,意味着无法做哪些操作? [root@centos7 testdir]# ls -ld /testdir/ drwxr-xrw-. 3 root root 27 Aug  5 0…

    Linux干货 2016-08-05
  • GNU awk

    文本处理三工具:grep, sed, awk grep, egrep, fgrep:文本过滤工具;pattern sed: 行编辑器 模式空间、保持空间 awk:报告生成器,格式化文本输出;  AWK: Aho, Weinberger, Kernighan –> New AWK, NAWK  GNU awk, gawk&…

    Linux干货 2015-12-03
  • linux学习笔记: shell脚本编程相关(上)

    前言 unix/linux操作系统下的shell,是一种壳,其目的是提供一个用户与计算机相互交互的命令接口,通过输入各种命令,达到操作的目的。 与此同时,shell支持控制流程,进而可以组合出各种各样的应用实例。 shell脚本的格式  首行shebang机制:  bash脚本,首行添加#!/bin/bash&nbsp…

    Linux干货 2017-04-18
  • DNS 主从协作及配置父子域实验

    实验:DNS主从协作及配置父子域实验 实验拓扑图 实验准备     1、所有主机关闭防火墙和selinux         service iptables stop       …

    Linux干货 2016-08-15