一、rpm命令
rpm:
數據庫:/var/lib/rpm
rpmbuild:
創建軟件包
1、安裝
rpm -i /PATH/TO/PACKAGE_FILE
-h : 以#顯示進度:每個#表示2%
-v:顯示安裝詳細信息
-vv:顯示更詳細信息
--nodeps:忽略依賴關係,軟件可以裝但裝上也無法運行
--replacepkgs:重新安裝,替換原有安裝
--oldpackage:降級安裝
--force:強行安裝,可以實現重裝或降級(相當於--replacepkgs和--oldpackage和--replacefiles)
--test:不真正安裝,僅測試
通常:
rpm -ivh /PATH/TO/PACKAGE_FILE
2、查詢
rpm -q PACKAGE_NAME(只需跟包名即可)
rpm -qa : 查詢已安裝的所有包
rpm -qi PAKAGE_NAME: 查詢指定軟件包的說明信息
rpm -ql PACKAGE_NAME:查詢指定軟件包安裝後生成的文件列表
rpm -qf /path/to/somefile : 查詢某文件是由哪個軟件包安裝生成的
rpm -qc PACEAGE_NAME : 查詢指定軟件包安裝的配置文件
rpm -qd PACKAGE_NAME : 查詢指定軟件包安裝的幫助文件
rpm -q --scripts PACKEAGE_NAME : 查詢指定的文件是由哪個rpm包安裝生成的
如果某rpm包尚未安裝,我們需要查詢其說明信息、安裝以後會生成的文件
rpm -qpi /PATH/TO/PACKAGE_FILE (說明信息)
rpm -qpl ......(將會生成的文件列表)
同樣 -qp{f,c,d}都可使用
3、升級
rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE :如果裝有老版本的,則升級;否則,安裝
rpm -Fvh /PATH/TO/NEW_PACKAGE_FILE :如果裝有老版本的,則升級;否則,退出
--oldpackage:降級
4、卸載
rpm -e PACKAGE_NAME (如果某軟件包被其他軟件依賴,則不能卸載)
--nodeps:忽略依賴關係(強行卸載)
5、校驗
rpm -V PACKAGE_NAME 查看軟件安裝文件是否被改動過
missing 文件被刪除
S 文件大小改變
M 文件權限改變
5 md5碼改變
D 設備文件主次號不匹配
L 連接路徑不匹配
U 屬主改變
G 屬組改變
T 最近修改時間改變
6、重建數據庫
rpm
--rebuilddb:重建數據庫 , 一定重新建立
--initdb:初始化數據庫,沒有建立,有就不用建立
7、檢驗來源合法性及軟件包完整性
rpm -K /PATH/TO/PACKAGE_FILE
dsa,gpg:驗證來源合法性,也及驗證簽名;可以用--nosignature略過此項
sha1,md5:驗證軟件包完整性;可以使用--nodigest,略過此項
驗證前要導入祕鑰文件
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-radhat-release
二、yum軟件包管理
yum倉庫包括
rpm軟件包
元數據文件
1、primary.xml.gz
所有rpm包的列表
依賴關係
每個rpm安裝生成的文件列表
2、filelists.xml.gz
當前倉庫中所有rpm包的所有文件列表
3、other.xml.gz
額外信息,rpm包的修改日誌;
4、repomd.xml
記錄上面三個文件的時間戳和校驗戳(當上面三個文件被緩存到本地時,每次使用進行比對,不同則重新下載)
5、comps*.xml:rpm包分組信息
紅帽5和紅帽6光盤倉庫的結構有所不同
紅帽5將rpm包和repodata放在同一目錄(有四個倉庫)
紅帽6將rpm包和repodata放在不同的目錄下
注意:在使用的時候必須以repodata所在的目錄作爲yum倉庫的真正目錄
yum命令
使用倉庫要先在配置文件中指定倉庫位置
/etc/yum.conf配置文件中指定要想添加一個yum倉庫必須在/etc/yum.repos.d/目錄下面創建.repo結尾的文件;repo文件創建規則:
[Repo_Name] 表示名(id)
name= (Description描述信息)
baseurl= (倉庫位置)
倉庫位置支持3中格式:
ftp://
http://
file:/// 本地目錄
enabled={1|0} (定義該倉庫是否啓用)
gpgcheck={1|0} (是否驗證軟件包的合法性,如果指定爲1,則必須指定下一個gpgkey)
gpgkey= (祕鑰文件位置,也支持3種格式【當gpgcheck設置爲1時必須指定】)
【一個repo文件下可以創建多個yum倉庫,都按照以上規則】
yum
list 軟件包列表
clean 清空緩存
repolist 查看repo列表信息[all | enabled | disabled]
如何創建yum倉庫
createrepo
1、將rpm包放到將要創建爲倉庫的目錄下
2、使用createrepo -g /path/to/comps-rhel5-vt.xml /倉庫路徑/ 【創建依賴關係等文件】
comps-rhel5-vt.xml爲 紅帽創建依賴關係等文件所需要的文件,一般倉庫內都有
3、將添加repo文件創建倉庫
三、make install編譯安裝
前提:準備開發環境(編譯環境)
安裝"Development Tools" 和 "Development Libraries"
1、tar 解壓源程序
2、cd 到程序文件目錄
3、./configure
--help 查看選項
--prefix=/path/to/somewhere 指定安裝目錄
--sysconfdir=/path/to/CONFFILE_PATH 指定配置文件路徑
功能: 1、讓用戶選擇編譯特性 2、檢查編譯環境和依賴關係
--without_http_rewrite_module 忽略依賴關係
4、make
5、make install
安裝完成後:
1、修改PATH環境變量,以能夠識別此程序的二進制文件路徑
(1)將安裝好的程序添加到PATH查找路徑中:修改 /etc/profile 添加PATH=$PATH:/新裝程序路徑
(2)在/etc/profile.d/目錄建立一個一.sh爲名稱後綴的文件,在裏面定義 :export PATH=$PATH:/path/to/somewhere(程序路徑)
2、如果新安裝的程序可能會被別的程序依賴的話:
默認情況下,系統搜索庫文件的路徑是:/lib /usr/lib ;要添加額外的搜尋路徑
在/etc/ld.so.conf.d/中創建以.conf爲後綴名的文件,而後把要增添的路徑直接寫至此文件中
ldconfig 通知系統重新搜尋庫文件
-v : 顯示重新搜尋過程
3、添加頭文件搜尋:【頭文件定義了庫函數信息,包括接收的參數、參數類型個數、返回值等】
系統默認路徑:/usr/include
增加頭文件搜尋路徑,使用鏈接:
將 /usr/新程序的庫頭文件路徑/ 鏈接到 /usr/include
兩種方式:
ln -s /usr/local/tengine/include/* /usr/include 【將所有頭文件都鏈接過去】
ln -s /usr/local/tengine/include /usr/include/tengine 【將頭文件的目錄鏈接過去】
4、man文件路徑 :安裝在--prefix指定的目錄下的man目錄 :/usr/share/man
1、在/etc/man.config中添加一條MANPATH
2、每次使用指定man地址 : man -M /PATH/TO/MAN_DIR COMMAND