軟件包管理

軟件包管理

在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:major,minor,release

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 modifier,rpm的前端程序,用來解決軟件包相關依賴性,可以在多個庫指基金按定位軟件包。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.www58058.com/37599

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

相關推薦

  • 合并 CentOS 6.8 的兩個iso鏡像

    合并 CentOS 6.8 的兩個iso鏡像 合并 CentOS 6.8 的兩個DVD鏡像 1、創建相關目錄:                              &nbsp…

    Linux干貨 2017-04-24
  • 軟鏈接和硬鏈接及兩者之間的不同

    在 Linux 上被分成兩個部分:用戶數據 (user data) 與元數據 (metadata)。用戶數據,即文件數據塊 (data block),數據塊是記錄文件真實內容的地方;而元數據則是文件的附加屬性,如文件大小、創建時間、所有者等信息。在 Linux 中,元數據中的 inode 號(inode 是文件元數據的一部分但其并不包含文件名,inode 號…

    Linux干貨 2016-12-05
  • Linux 第九天: Linux Shell腳本編程

    Linux 第九天: (08月11日) Linux Shell腳本編程     Shell腳本是包含一些命令或聲明, 并符合一定格式的文本文件格式要求 運行shebang機制#!/bin/bash   bash -n /path/to/some_script  檢測腳本中的語法錯誤bash -x /path/to/so…

    Linux干貨 2016-08-15
  • 邏輯卷管理

    邏輯卷管理 一 創建邏輯卷 1 準備分區或硬盤 這里使用/dev/sdb、/dev/sdc兩塊硬盤和/dev/sda9、/dev/sda10兩個分區,大小都為1G,磁盤有限,我也不想這么摳的。 添加分區/dev/sda9、 /dev/sda10 [root@centos7 ~]# fdisk /dev/sda Welcome to fdisk (u…

    Linux干貨 2017-05-02
  • 網絡配置——IP劃分網絡基礎

    Linux網絡屬性配置: 計算機網絡: TCP/IP:協議棧         ISO,OSI:協議棧學習 MAC:Media Access Control          48bits: &nbsp…

    Linux干貨 2016-09-07
  • Linux入門知識

    了解計算機的構造和Linux的基本知識,掌握相關的內容

    2017-09-10
欧美性久久久久