Linux軟體管理

來源:互聯網
上載者:User

標籤:linux   yum   rpm   

軟體包管理器的核心功能:

打包成一個檔案:二進位程式,庫檔案,設定檔,協助檔案。

產生資料庫:追蹤所安裝的每一個檔案。


軟體包管理的核心功能:

1.製作軟體包。

2.安裝、卸載、升級、查詢、校正。


依賴關係:

一個軟體包安裝需要其他已安裝的軟體包的支援。


rpm:

rpm包命名:

主包:

NAME-VERSION-RELEASE.ARCH.rpm

子包:

NAME-MAJOR.MINOR.RELEASE-RELEASE-ARCH.rpm


主要版本號(MAJOR)重大改進。

此版本號碼(MINOR):某個子功能發生重大變化

發行號(RELEASE):修正了部分bug,調整了一點功能。


#rpm [OPTION]  PACKAGE

資料庫存放在/var/lib/rpm

[OPTION]

-a 顯示所有已安裝的軟體包。

-i 安裝。

-e 卸載。

-V 校正已安裝的軟體包。

校正結果為8個字元表示。

. 通過驗證,無問題。

? 無法執行。

S 檔案大小變化。

M 模式改變,例如檔案類型、許可權等。

5 md5值改變。

D 裝置主次版本號碼不匹配。

L readlink不匹配。

U 屬主變化

G 屬組變化。

T 修改時間變化。


-K 驗證軟體包。

dsa、gpg 驗證來源合法性,即驗證簽名。

sha1、md5 驗證軟體包完整性。

--nosignature 只驗證來源合法性。

--nodigest 只驗證完整性。

--import KEY 匯入秘鑰檔案。

/etc/pli/rpm-gpg/


--rebuilddb 重建資料庫。不管資料庫是否存在都重新建立。

資料庫在/var/lib/rpm/下。

--initdb 初始化資料庫。沒有才建立,有則不建立。


-h --hash 列印50個#號顯示安裝進度,每個#號表示2%的進度。

-v 顯示詳細過程。

-vv 顯示更詳細的過程。

--nodeps 忽略依賴關係。

--replacepkgs 重新安裝,替換原有的安裝。

--replacefiles 替換檔案。

--oldpackages 降級安裝。

--force 強行安裝,實現重裝或降級。等同於--replacepkgs + --replacefiles + --oldpackages。


-q 查詢軟體包是否已安裝。

-qa 顯示所有已安裝的包。

-qi 查詢軟體包的相關資訊。

-ql 查詢軟體包安裝後產生的檔案清單。

-qf FILE 查詢制定的檔案是由那個rpm包安裝產生的。

-qc 查詢軟體包產生的設定檔。

-qd 查詢軟體包產生的協助檔案。

-q --scripts 查詢軟體包中包含的指令碼。包含4類指令碼:安裝前、後和卸載前、後。

-qpi 查詢未安裝的軟體包的相關資訊。

-qpl 查詢未安裝的軟體包產生的檔案清單。



-Uvh 升級軟體包。如果有舊版本,則升級,若沒有則安裝新版本。

-Fvh 升級軟體包。如果有舊版本,則升級,若沒有則退出。


例如:

#rpm -ivh httpd-xxxxx.rpm

#rpm -ivh --force httpd-xxxxx.rpm

#rpm -q httpd-xxxx.rpm

#rpm -qa | grep "httpd*"

#rpm -qi httpd-xxxxx.rpm

#rpm -ql httpd-xxxx.rpm | more

#rpm -qf /etc/yum.conf 

#rpm -Uvh httpd-xxxx.rpm

#rpm -Uvh --oldpackages httpd-old-xxxxx.rpm

#rpm -e --nodeps httpd-xxxx.rpm




yum:

yum倉庫中中的中繼資料檔案:

primary.xml.gz

所有RPM包的列表。

依賴關係。

每個RMP安裝產生的檔案清單。

filelists.xml.gz

當前倉庫中所有的RPM包的所有檔案清單。

other.xml.gz

額外資訊,RPM包的修改日誌。

repomd.xml

包含filelists.xml.gz other.xml.gz primary.xml.gz的時間戳記和校正和。

comps*.xml

RPM包的分組資訊。


yum的設定檔:

/etc/yum.conf


建立yum倉庫:

1.拷貝所有的rpm包到目錄。

2.使用createrepo命令產生倉庫。

3.如果需要建立包組,需要在源檔案夾內找到comps*.xml檔案。使用-g選項 comps*.xml REPO_dir。


#createrepo [OPTION] REPO_DIR

-g FILE 建立組。需要comps*.xml檔案。





為yum定義repo檔案:

/etc/yum.repos.d/ repo檔案都放在此檔案夾下。

格式如下:


[REPO_NAME] repo源的名稱。


name=DESCRIPTION 描述資訊。


baseurl=REPO_DIR yum倉庫的的位置,支援ftp、http、file三種方式。

ftp://

http://

file:///


enabled=0|1 是否啟用此repo源,0表示禁用,1表示啟用。


gpgcheck=0|1 是否使用gpg驗證,0表示禁用,1表示啟用,啟用要指定gpgkey的路徑


gpgkey=KEY_DIR

ftp://

http://

file:///



#yum [OPTION] COMMAND PACKAGE ...

[OPITON]

-y 自動回答為yes。

--nogpgcheck 禁用gpg驗證。



COMMAND

list 列表

all 所有。預設。

available 所有可用的。倉庫中有但未安裝的。

installde 已安裝的。

updates 可用的升級。



clean 清理緩衝。

packages rpm包。

headers 頭部資訊。

meatdate 中繼資料檔案。

dbcache rpm庫緩衝。

all 全部。


repolist 列出repo源列表和簡要資訊。

all 全部repo源。

enabled 啟用的repo源。預設。

disabled 禁用的repo源。



install 安裝。


update 升級。


update_to 升級為指定版本。


remove|erase 卸載。

如果包有依賴性關係,則會將所有有依賴關係的包全部卸載。


info 顯示包的相關資訊。比rpm -qi要簡要。


provides|whatprovides 查看檔案或特性是由哪個包安裝產生的,等同於rpm -qf。


groupinfo GOURPK_NAME 顯示指定包組的相關資訊。


grouplist 列出所有的軟體包組。


groupinstall 安裝軟體包組。


groupremove 移除軟體包組。


groupupdate 升級軟體包組。


reinstall 重新安裝。


downgrade 降級軟體包。


localinstall 安裝當地套件。



make 專案管理工具

makefile檔案

定義了make命令(調用gcc,g++等)按何種次序去編譯這些來源程式檔案中的來源程式。


automake --> makefile.in -->makefile

autoconf --> configure


編譯安裝的3步驟:

前提:需要開發環境(編譯環境)

#yum groupinstall "Development Tools" "Development Libaries" ... 


所有操作都是在源碼包解壓檔案目錄下操作。


1.#./configure

功能:

1.讓使用者選定編譯特性。

2.檢查編譯環境。


--help 擷取指令碼使用格式。

--prefix=INSDIR 指定軟體安裝位置。

--sysconfigdir=CONFDIR 指定設定檔的路徑。


2.#make


3.#make install



編譯後執行程式:

1.修改/etc/profile中的PATH環境變數。以此能夠識別此程式的二進位檔案路徑。登出後重新登陸即可生效。

#vim /etc/profile

PATH=$PATH:DIR


或者在/etc/profile.d/目錄下建立.sh檔案。在裡邊定義export PATH=$PAHT:DIR



2.建立.conf檔案。

預設情況下,系統搜尋檔案庫的路徑只有/lib和/usr/lib。要添加額外的搜尋路徑,要在/etc/ld.so.conf.d/中建立以.conf為尾碼名的檔案。而後把要增加的二進位檔案路徑寫入此檔案中。


#vim /etc/ld.so.conf.d/SWNAME.sh

BINDIR

#ldconfig [OPTION] 重新搜尋庫檔案。 

-v 顯示過程。 


3.標頭檔

預設位置:/usr/include

增加標頭檔搜尋路徑,使用連結進行:

1,把每個標頭檔連結過去。

ln -s /usr/local/SWNAME/include/* /usr/include/

2.把檔案夾連結過去。

ln -s /usr/local/SWNAME/include /usr/include/SWNAME


4.man檔案路徑:

預設路徑在/etc/man.conf設定檔中的MANPAHT欄位定義。

#vim /etc/man.config

MANPATH=DIR

或者使用-m DIR 指定軟體的man文檔位置。每次都得指定路徑。

#man -M DIR COMMAND


本文出自 “小私的blog” 部落格,請務必保留此出處http://ggvylf.blog.51cto.com/784661/1612478

Linux軟體管理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.