一、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,如需轉載請自行聯系原作者