程序包管理:rpm、yum以及(make)源代碼編譯安裝

程序包管理:rpm、yum以及(make)源代碼編譯安裝

Linux上安裝程序一般都有三種方法:源代碼編譯安裝,rpm包安裝和rpm包的前端安裝yum, (rpm,和yum程序包管理器是針對CentOS6平臺的)

程序包管理方式都大同小異:  源代碼–>目標二進制格式(二進制程序、庫文件、配置文件、幫助文件)–>組織稱為一個或者幾個包文件;包含的功能:安裝、升級、卸載、修復、查詢、校驗。

程序包的命名方式: 源代碼:NAME-VERSION.tar.gz VERSION:major.minor.releaserpm包:NAME-VERSION-release.os.arch.rpm; VERSION:major.minor.release

第一:源代碼編譯安裝

一般源代碼都是打包了的文件格式有:*.tar.gz,*.tar.bz2,*.tar.xz等等

步驟:

1), 解壓包,tar  -zvxf|jvxf|Jvxf  PACKAGE; 可以不用指定解壓方式

2), 切換到解壓目錄:先看看INSTALL README

3), ./configure; 通過選項傳遞參數,指定啟用相關特性,安裝路徑,執行時參考Makefile,讓后生成makefile;還有檢查外部環境變量

相關選項:–help  獲取這個源代碼包中,配置相關信息的選項(可能每個包都是不同的);   

                    –prefix=/path/to/somedir  :指定安裝的目錄, 默認是安裝到/usr/local;

      –sysconfdir=/path/to/somedir  ;配置文件的安裝目錄;

     –builddir=/path/to/somedir

4) make && make install ; 編譯和建立相應的程序文件

     安裝后配置程序環境

     1), 導出二進制文件,編輯:/etc/profile.d/NAME.sh  添加:export PATH=/path/to/bin:$PATH

 2), 導出庫文件,編輯/etc/ld.so.conf.d/NAME.conf,添加新的庫文件到此文件中,讓系統重新生成緩存 ldconfig  [-v]

 3), 導出頭文件  基于鏈接的方式實現,ln -sv

 4), 導出幫會手冊 編輯/etc/man.config文件 添加 一個 MANPATH

 

第二、rpm包管理(CentOS6平臺測試的)

1,程序包的組成清單:

文件清單和安裝和卸載時運行的 腳本

2,數據庫包含的信息(CentOS系列/var/lib/rpm

程序包的名稱和版本;依賴關系;功能說明;安裝生成的指定文件路徑及校驗信息

3,獲取一個包,我們看其合法性和完整性:一是,獲取程序包的時候,一般都是在官方獲??;二是驗證完整性:rpm -V package

https://www.linux178.com/linux/6.html :可以參考這個

rpm命令  主要包含下列幾類:

安裝:-i

升級:-U,–update

卸載:-e,–erase

查詢:-q,–query

校驗:-V,–verifyf

數據庫維護:–builddb

安裝:

-v 詳細信息;-vv 更詳細的信息

-h:以hash進度條顯示安裝百分比,每個#表示2%的進度

–test:測試安裝,檢查報告依賴和沖突

–nodeps 忽略依賴關系,不建議使用

-ivh  –replacepkgs  ;刪除必要的程序文件,而又找不回來,就重新安裝

–nosignature:不檢查包的簽名

–nodigest:不檢查包完整

升級:

–force  強制執行

–oldpackage 降級到老版本

-U,升級或者安裝

-F,系統沒有老版本,就不能升級操

注意:不建議系統內核升級,linux支持多版本內核并存,所以直接安裝多版本內核就行

卸載:

-e 卸載

–allmatches 卸載所有匹配指定名稱的程序包各版本

–nodeps:忽略依賴關系

–test:測試卸

查詢:

rpm {-q|–query} [select-options] [query-options]

-q  查詢是否安裝及包的版本

-a,–all:查詢所有已經安裝過的包

-qa  :查詢系統上所有已經安裝的包

-qf  somefile  :查詢這個文件所有哪個包生成的

-p,–package PACKAGE_FILE:用于實現未安裝的程序包的安裝后生成哪些文件而進行的查詢

–whatprovides CAPABILITY:查詢指定的CAPABILITY由哪個程序包提供

–whatrequires CAPABILITY:查詢指定的CAPABILITY依賴于哪個程序包

[query-options]

–changelog :查詢程序的日志,就是它的故事

-l:列出一個程序包安裝生成所有的文件列表

-i,–info  程序包相關的信息,版本號,大小,包組

-c,–configfiles :查詢指定程序包的配置文件

-d,–docfiles,查詢指定的程序包的幫助文檔

–provides:查詢指定程序提供了什么功能

-R,–requires :查詢指定程序包的依賴關系

–scripts :查詢定指定程序包中使用的腳本

 

校驗:

-V:校驗查詢,查詢安裝后文件是否被修改過

rpm -V 程序

rpm {-V|–verify} [select-options] [verify-options]

   S file Size differs

   M Mode differs (includes permissions and file type)

   5 digest (formerly MD5 sum) differs

   D Device major/minor number mismatch

   L readLink(2) path mismatch

   U User ownership differs

   G Group ownership differs

   T mTime differs

   P caPabilities

導入校驗方式:

rpm –import  /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 : 導入公鑰

手動驗證:rpm -K PACKAGE_FILE

重建數據庫

/var/lib/rpm ; rpm數據庫位置

rpm查詢操作就是基于此數據庫實現的

rpm { –initdb | –rebuilddb } [–dbpath=/tmp/rpm]

–initdb :初始化數據庫,當前無數據庫時,可實現創建一個新的數據庫,當前有時不執行任何操作

–rebuilddb:重新構建,有數據庫,但是不完整

 

第三、yum源安裝

yum源安裝—>配置文件指定服務器(URL:統一資源配置服務)—>匹配包列表文件—>下載相關聯的程序包安裝,yum repository:yum repos;存在rpm包的庫,以及包相關的元數據文件(存放特定目錄下:repodata)

支持的文件服務器有:ftp:// ;http://; nfs://  ; file:///

yum的客服端:配置文件

/etc/yum.conf  : 為所有倉庫提供公共配置

/etc/yum.repos.d/*.repo  ;為倉庫的指向提供配置

倉庫的定義:查詢文檔(man yum.conf),基本格式

[repositoryid]

name=some name for this repository

baseurl=url://path/to/repository

enabled={1|0} 是否啟用此倉庫,默認開啟的

gpgcheck={1|0} 是否校驗簽名信息

gpgkey=URL ;指明秘鑰文件

enabledgroups:支持組的方式管理此程序包

failovermethod 隨機

安裝:

   yum install package1 …..  ;默認安裝最新版本的程序包,可以安裝指定 版本號的程序包

   yum updates [package1] … 升級

   yum check-update ;  檢查可用升級

   yum remove|erase package1 …   卸載

   yum info     ;查包的信息

   yum provides | […]   查看某文件有哪個包提供的 相當于 rpm -qf PACKAGE_FILE 

   yum clean  [packages|metadata|all} 清楚本地指定相關緩存

   yum search string1 [….] 以指定關鍵字搜索程序包名以及summary信息

   yum deplist package1 … 查看指定包的依賴關系

   yum history : 查看使用yum 操作的相關事務歷史(使用yum的日志) ,stats :查看統計數據

–nogpgcheck  不檢查秘鑰

-y 自動選擇“yes

-q  安靜安裝,不輸出信息

-noplugins:禁用所有插件

  1. yum的repo配置文件中可用的變量

    $releasever:當前系統的發新版的主版本號

    $arch:系統架構

    $basearch:基礎平臺

    $YUM0-YUM9 ;自定義的變量


比如配置本地光盤的Package ,(掛載到/mnt/cdrom

備份原有的.repo文件,vim /etc/yum.repos.d/CentOS-local.repo,如下:

[Base]

name=CentOS Linux release 7.3

baseurl=file:///mnt/cdrom/

enable=1

gpgcheck=1

gpgkey=file:///media/RPM-GPG-KEY-CentOS-7

 

實例:

lrzsz安裝

rpm -ivh /home/giveup/soft/lrzsz-0.12.20-27.1.el6.x86_64.rpm

 blob.png

安裝zsh為例,利用yum源安裝

~]# yum install zsh

 blob.png

blob.png

 

 

原創文章,作者:不忘初衷,如若轉載,請注明出處:http://www.www58058.com/66369

(1)
不忘初衷不忘初衷
上一篇 2017-01-10
下一篇 2017-01-10

相關推薦

  • 文本處理三劍客之Sed(行編輯器)

    sed(流編輯器,行編輯器)     是一種流編輯器,一次處理一行內容,處理時把當前處理的行存儲在臨時緩存中,成為“模式空間”,接著用sed命令處理緩沖區的內容,處理完畢后吧緩沖區內容輸出到屏幕接著處理下一行。這樣不斷重復到末尾。文件內容并沒有改變。除非使用重定向輸出才會改變內容。 sed:行編輯器(全屏編輯器:vi)   &n…

    Linux干貨 2016-08-15
  • linux系統及簡單使用

    簡介:CentOS(Community Enterprise Operating System)社區企業操作系統,安全和穩定性較好,有優秀的社區支持。   Linux系統的原則: 1、由單一目的的較小的程序程序組成 2、一切皆文件 3、避免捕獲用戶接口 4、配置文件保存在文本中 5、鏈接程序完成復雜的功能   Linux系統安裝: 英文安…

    Linux干貨 2017-07-15
  • 20160802作業

    20160802作業 1、每日課堂筆記總結 2、預習 3、每日課堂pdf練習 4、在/data/testdir里創建的新文件自動屬于g1組,組g2的成員如: alice能對這些新文件有讀寫權限,組g3的成員如:tom只能對新文件有讀權限,其它用戶(不屬于g1,g2,g3)不能訪問這個文件夾。 [root@Centos7 ~]# chmod…

    Linux干貨 2016-08-04
  • Linux簡介和基礎

    一、系統和硬件 無論是Linux、OS X、Windows操作系統,他們都是由以下部分組成(分層結構): 最底層:硬件 底層之上:將硬件的接口抽象成為系統調用(kernel) 再之上:庫 再此之上為:應用程序 程序的運行可以有兩種方式: 1、開機自動啟動運行 2、用戶通過交互式接口登陸或者連接系統上去,來手動運行程序 二、終端: 1、物理終端:我們可以將顯示…

    Linux干貨 2017-09-02
  • N25期–第十七周作業

    1、  結合圖形描述LVS的工作原理; 針對高可伸縮、高可用網絡服務的需求,給出了基于IP層和基于內容請求分發的負載平衡調度解決方法,并在Linux內核中實現了這些方法,將一組服務器構成一個實現可伸縮的、高可用網絡服務的虛擬服務器。 虛擬服務器的體系結構如圖所示,一組服務器通過高速的局域網或者地理分布的廣域網相互連接,在它們的前端有一個負載調度器(…

    2017-05-08
  • 1021作業

    關于用戶和組相關配置文件的總結 /etc/passwd:用戶及相關屬性信息 在Linux /etc/passwd文件中每個用戶都有一個對應的記錄行,它記錄了這個用戶的一些基本屬性。系統管理員經常會接觸到這個文件的修改以完成對用戶的管理工作。這個文件對所有用戶都是可讀的。但是Linux /etc/passwd文件中都有些什么內容呢? #cat/etc/pass…

    Linux干貨 2016-10-24

評論列表(1條)

  • 馬哥教育
    馬哥教育 2017-04-10 16:14

    yum可結果后面的http進行搭建,加油?。?!

欧美性久久久久