天天看點

Linux軟體包管理

一、rpm包管理工具

1、rpm包簡介

rpm是redhat的軟體包管理器。rpm包管理器全稱rpm: Redhat Package Manager RPM  Package Manager。它的軟體包字尾也為.rpm。除此外,debian,deb檔案有dpkg包管理器。

rpm包的命名方式:

源代碼:name-version.tar.{gz|bz2|xz} 例如:zip-3.0-1.el6_7.1.x86_64.rpm

version:major.minor.release 

major:主版本 重大的分支

minor:次版本,其中某個功能有所改變

release:發行号,修正了某個BUG,修改了某個代碼。

RPM格式:

yum-presto-0.6.2-1.el6.noarch.rpm

如:0.6.2為程式版本号,1.el6是release,noarch.rpm是使用的什麼硬體架構平台

name-VERSION-relese.arch.rpm

version: 這是源代碼的版本。就是上面的majob,minor,release。

release.arch:打包版本号。rpm的發行号。 

arch(archetecture)是硬體架構或系統的平台類型。

2、程式包管理

功能:将編譯好的應用程式的各組成檔案打包一個或幾個 程式封包件,進而友善快捷地實作程式包的安裝、解除安裝、查詢、 更新和校驗等管理操作。

包管理主要包括如:打包、安裝、查詢、更新、解除安裝、校驗、資料庫管理

3、包管理工具的使用

1)安裝(常用組合rpm -ivh PACKAGE_.RPM)

rpm -ivh openssl-1.0.1e-48.el6.x86_64.rpm  

rpm [OPTIONS]  [PACKAGE_FILE]

     安裝:-i,--install

    解除安裝:-e,--erase

    查詢:-q,通常結合qa使用

    顯示:-v,顯示過程,-vv顯示更詳細的資訊

    更新:-U,--update

    -h:hash marks輸出進度條;每個#表示2%的進度; 

    --test:測試安裝,檢查并報告依賴關系及沖突消息等; 

    --nodeps:忽略依賴關系;不建議; 

    --replacepkgs:重新安裝                   

2)更新

rpm {-U|--upgrade} [install-options]PACKAGE_FILE ...

rpm {-F|--freshen} [install-options] PACKAGE_FILE ...

-U:更新或安裝;如果原本就沒有安裝此軟體,則安裝。

-F:更新,如果沒有安裝些軟體,則不更新。

--force:強制更新;有時候低版本的程式可能被其它程式所依賴,這時更新會報錯。如果強制更新很可能會導緻一些程式不能使用。這也是還要使用源代碼安裝軟體的一個原因。

rpm -Uvh openssl-devel-3.0.1.el6_7.1.x86_64.rpm

rpm -Fvh openssl-devel-3.0.1.el6_7.1.x86_64.rpm

3)解除安裝

rpm -evh PACKAGE_NAME 

例如:rpm -evh tree 

4)查詢 

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

-a, --all:查詢所有已經安裝過的包,場結合qa一期使用;

-f  FILE:查詢指定的檔案由哪個程式包安裝生成;

-p, --package PACKAGE_FILE:用于實作對未安裝的程式包執行查詢操作;

二、yum 包管理工具

1、簡介

yum全稱為:Yellowdog Update Modifier,可以解決包與包之間的依賴關系,使得程式包安裝簡潔友善、快速。yum包安裝分為本地yum和網絡yum兩類别。

檔案伺服器(共享rpm包,通常使用http服務): 通過yum所支援的檔案共享機制将各rpm包通過檔案服務共享。

倉庫存儲了衆多rpm包,以及包的相關的中繼資料檔案(放置于特定目錄下:repodata)

2、yum用戶端配置和倉庫的設定

要使用yum管理應用程式,首先得配置其可用的yum倉庫,儲存在配置檔案中:

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

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

配置檔案格式:由兩段組成,類似windows的ini配置檔案。

[main] : 主配置段 

[repo] : 倉庫配置段

其中/etc/yum.conf中一般是[main]配置段的設定,/etc/yum.repos.d/下面的各以.repo結尾的檔案一般都是配置[repo]倉庫段的。當然也可以把倉庫段寫到yum.conf檔案中。不過這樣分開設定的原因就是為了清晰,容易配置。

[main]

cachedir=/var/cache/yum/$basearch/$releasever #緩存目錄

keepcache=0    #是否緩存二進制檔案,0緩存,1不緩存 

debuglevel=2     #調試級别

logfile=/var/log/yum.log #日志檔案

exactarch=1    

obsoletes=1

gpgcheck=1    #包合法性檢查

plugins=1

installonly_limit=5

bugtracker_url=http://bugs.centos.org/set_project.php?project_id=19&ref=http://bugs.centos.org/bug_report_page.php?category=yum

distroverpkg=centos-release

/yum.repos.d/*.repo檔案配置如下:

[repo_ID] #所有倉庫的此項不能相同

name=string #倉庫名稱

baseusrl=url://path/to/somefile #倉庫的通路路徑

enable={1|0} #0表示關閉次倉庫 1表示啟動

gpgcheck={1|0} #0表示禁用,1表示啟用

gpgkey=URL #公鑰檔案,可以在本地也可以在伺服器端的路徑

執行個體如下所示:

[c6-media]

name=CentOS-$releasever - Media

baseurl=file:///media/CentOS/

        file:///media/cdrom/

        file:///misc/cd/

        file:///media/cdrecorder/

gpgcheck=1

enabled=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

一個repo檔案可以設定多個倉庫資訊。 baseurl指定倉庫的的方式:

用戶端配置檔案指定對應伺服器通路方式:  

ftp   ftp://****/repo

http  http://xxxx/reop

nfs   ntf://****/nts_path

file  file:///****/repository     三個斜線是因為一個是本地的根目錄路徑。

所指向的目的就是有repodata目錄的目錄。

我們這裡舉個例子,就以我們系統的CD光牒為例,它就是一個倉庫。

配置本地yum源倉庫:

[root@centos6 yum.repos.d]# cat local.repo

[local]

name=local-yum-repo

baseurl=file:///media/cdrom

gpgcheck=0

enable=1

[root@centos6 yum.repos.d]#yum clean all 

[root@centos6 yum.repos.d]yum repolist all 

<a href="http://s1.51cto.com/wyfs02/M01/86/1A/wKioL1e1GBvg3HdFAABUC9lzug8533.png" target="_blank"></a>

yum指令

yum [options] [command] [package ...]

   選項:  

    --nogpgcheck:禁止進行gpg check;

    在用yum安裝本地包的時候可能會用到。不然沒有key是無法安裝的。

    -y: 自動回答為“yes”;不用确認,自動安裝。

    -q:靜默模式;

    --disablerepo=repoidglob:臨時禁用此處指定的repo;

    --enablerepo=repoidglob:臨時啟用此處指定的repo;

    --noplugins:禁用所有插件;

常用選項:

    yum -y install Packages 

    yum clean all 

    yum erase Packages 

    yum group list 

三、編譯安裝程式包軟體  

一、簡介

主要是通過C代碼的編譯實作軟體的安裝,主要步驟如下所示:./configure make make install 

編譯源程式的步驟:

# tar xf testapp-version.tar.{xz|bz2|gz}

# cd testapp-version

# ./configure

還需通過許多選項指定編譯特性

# make

# make install

./configure腳本的使用:

1、擷取幫助

./configure --help

2、較通用的一些選項

安裝路徑相關:

--prefix=/path/to/somewhere: 指定安裝路徑

--sysconfdir=/path/to/somewhere: 指定配置檔案安裝路徑

指定啟用/禁用的特性

--enable-FEATURE: 例如--enable-fpm

--disable-FEATURE: 例如--disable-socket

指定所依賴的功能、程式或檔案

--with-FUNCTION[=/path/to/somewhere]

--without-FUNCTION

安裝後的配置:

程式運作:

1、讓二進制程式直接,而無須輸入路徑

# vim /etc/profile.d/APPNAME.sh

export PATH=$PATH:/path/to/somewhere

source /etc/profile.d/

2、導出手冊頁:

編輯/etc/man.config配置檔案,添加一項MANPATH,路徑為新安裝的程式的man目錄;

# man -M /path/to/somewhere KEYWORD

程式開發:如果其它應用程式依賴此程式的開發環境,或針對此程式做二次開發

1、導出庫檔案

第一步:指定讓系統搜尋定制的路徑

編輯/etc/ld.so.conf.d/APPNAME.conf

一行一個庫檔案路徑

第二步:觸發系統重新搜尋所有的庫檔案并生成緩存

# ldconfig 

-v

2、導出頭檔案

/usr/local/nginx/include

系統找頭檔案的路徑是:/usr/include

導出方式:建立連結進行

ln -sv /usr/local/nginx/include /usr/include/nginx

本文參照來自網際網路及其自行總結,如有相似之處純屬正常。

本文轉自chengong1013 51CTO部落格,原文連結:http://blog.51cto.com/purify/1839739,如需轉載請自行聯系原作者

繼續閱讀