linux-軟體包管理
時間:2015.09.20
linux-軟體包管理
程式包管理介紹
在 GNU/Linux( 以下簡稱 Linux) 作業系統中,RPM 和 DPKG 為最常見的兩類軟體包管理工具,他們分別應用於基於 RPM 軟體包的 Linux 發行版本和 DEB 軟體包的 Linux 發行版本。軟體包管理工具的作用是提供在作業系統中安裝,升級,解除安裝需要的軟體的方法,並提供對系統中所有軟體狀態資訊的查詢。
程式包的組成
程式包是由以下部分組成
二進位制程式:程式包最核心的組成部分,通常放在/bin, /sbin,/ /usr/bin, /usr/sbin,
庫檔案:其主要是實現二進位制檔案和程式碼共享通常存放在/lib64, /usr/lib64
幫助檔案:其形式有manual, info
這裡我們主要來介紹一下RPM包;其主要操作有:
打包:一個單一的歸檔檔案中;
安裝:把包放到其相應的檔案中去
解除安裝:就是手機程式包的資訊統一到一起,然後刪除
升級:就是新版本應用替換老的程式
查詢:實現檢視一個程式安裝的有什麼功能和程式的路徑位置
校驗:是檢查程式包安裝完以後其檔案是否被篡改了
程式分包機制
分為:核心包和支包
其命名機制
核心包testapp-version
支包testapp-devel-version
version:major.minor.release
主版本號.次版本號.release號
例:base-4.2.4.tar.gz
rpm的命名機制
包名-版本-release.arce.rpm
例:bash-4.2.4-1.el7.x86_64.rpm
分解:
bash包名
4主版本號
2次版本號
4release號
1.el7release號 是rpm的發行號
x86_64平臺架構
包和包之間:有可能存在依賴關係
如何獲取rpm包:
1、發行版提供的程式包;
2、Fedora-EPEL
3、專案的官方站點
4、搜尋引擎
http://rpmfind.net
http://rpm.pbone.net
http://pkgs.org
5、光碟
下面我們來看一下rpm是如何安裝的
首先我們這裡先掛載自己的光碟,如下圖
命令格式
rpm [option]包名
rpm –i[v|h] [--excludedocs |prefix |test |replace[pkgs |files] |nodeps] sudo
[解析] i為安裝,v為顯示詳細資訊,h為hash是進度資訊
如圖:
前面我們說過rpm包會有依賴關係的,我們以下圖為例,下圖中我們安裝的rpm包就會有它的先決條件包,而我們要想安裝這個rpm包除了先把其的先決條件包安裝完的方法外,我們還有如下選項 --nodeps忽略依賴關係,這是這樣安裝完之後程式可能無法執行,例:
有的時候我們安裝完的程式包,我們還可以重新安裝,其命令就是--replacepkgs重灌程式包
檢視程式包是否安裝,我們使用rpm -q報名或者rpm -ql報名顯示此包的安裝位置,如下圖:
rpm的升級
常用選項
rpm -Uvh package.rpm
rpm -Fvh package.rpm
-Uvh: 如果有舊版程式包,則升級之;如果沒有,則安裝之;
-Fvh: 如果有舊版程式包,則升級之;如果沒有,則不安裝;
這裡找不到升級包了就不做升級了
rpm的解除安裝
格式:rpm -ev package
如下圖:
rpm的查詢
格式:rpm -qapackage查詢已安裝的包
如下圖:
rpm -qcpackage查詢已安裝軟體生成了哪些配置檔案
rpm -qdpackage查詢已安裝軟體生成了哪些文件
rpm -ql package 顯示軟體包中的檔案列表
顯示太多就不截圖了
rpm -qipackage 顯示軟體包資訊
rpm -qf /path/查詢此路徑所屬的軟體包
rpm的校驗
rpm -V package
S 為檔案大小是否改變
5 為檔案的md5校驗值
L 連結檔案
T 檔案建立時間時間戳是否改變
D 裝置檔案是否改變或者是否匹配
U 檔案的使用者是否改變
G 檔案的使用者組是否改變
M 檔案的許可權是否改變
包校驗:
來源合法性驗正:非對稱加密
完整性驗正:單向加密
匯入金鑰:rpm --import /PATH/TO/KEY_FILE
校驗:rpm -K /PATH/TO/RPM_FILE
=====================包管理的yum=======================
yum百科
Yum(全稱為 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及CentOS中的Shell前端軟體包管理器。基於RPM包管理,能夠從指定的伺服器自動下載RPM包並且安裝,可以自動處理依賴性關係,並且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。
yum源的配置
CentOS 預設已經安裝了yum,不需要另外安裝
yum 的配置檔案分為兩部分:main 和repository
main 部分定義了全域性配置選項,整個yum 配置檔案應該只有一個main。常位於/etc/yum.conf 中。
repository 部分定義了每個源/伺服器的具體配置,可以有一到多個。常位於/etc/yum.repo.d 目錄下的各檔案中;如下圖:
yum.conf 檔案一般位於/etc目錄下,一般其中只包含main部分的配置選項,我們使用vim開啟主配置檔案,vim /etc/yum.conf ;如下圖:
主配置檔案,我們大部分不需要做操作,在這裡我們就不需要多說了。
下面我們主要來看一下/etc/yum.repos.d/*.repo檔案是如何定義的吧,我們首先來看如下截圖:
上圖,中我們是把內網中的一臺伺服器當做yum伺服器了,而他則每天晚上去外網同步更新安裝包,由於資源有限,我們就不再做操作了,我們在文章最後來配置一下光碟當做yum原始檔吧!
上圖,詳解:
解釋兩個變數
$releasever引用當前系統的主版本號,也就是Centos6.7的主版本號就是6
$basearch當前系統的基本架構比如:x86_64
選項 | 功能描述 |
[] | []中填寫的yum源中唯一的ID,可以為任意字元 |
name | 指定yum源名稱,可以為任意字元,一般我們都按照自己的習慣來。 |
baseurl | 指定yum源的URL地址(可以是http、ftp、或者是本地路徑) |
mirrorlist | 指定映象站點目錄 |
enabled | 是否啟用yum源(0代表禁用,1代表啟用,預設為啟用狀態) |
gpgcheck | 安裝軟體時是否檢查簽名(0代表禁用,1代表啟用),如果此項設定檢查,gpgkey就需設定key路徑 |
gpgkey | 檢查簽名的祕鑰檔案 |
provides | 檢視包是由哪個軟體包生成的 |
reinstall | 重新安裝軟體包 |
當我們建立好yum源倉庫了,我們可以使用如下命令來使用yum
YUM命令格式
用法:yum [選項] [指令] [軟體包]
其中我們常用的選項-y,是執行非互動式安裝,假定安裝過程中出現的所有提示回答為YES
指令
用法 | 描述 |
installpackage1 ...package10 | 使用yum安裝軟體包 |
updatepackage1 ...package10 | 使用yum源升級安裝包 |
check-update | 使用yum源檢查所有可升級的安裝包 |
remove |erase package1 ...package10 | 解除安裝軟體包 |
list | 列出系統中已安裝的以及yum源中所有可用的軟體包 |
info | 檢視軟體包資訊 |
cleanall | 清空所有的快取資訊 |
groupinstallgroup1..... | 使用yum安裝組包 |
grouplist | 列出系統中已安裝或者yum源可用的安裝包 |
groupremovegroup1..... | 解除安裝組包 |
search string1..... | 根據關鍵字查詢軟體 |
localinstallrpmfile1... | 通過本地的rpm檔案安裝軟體 |
history | 檢視歷史記錄 |
provides package1 | 檢視包是由哪個軟體包生成的 |
reinstall package1 | 重新安裝軟體包 |
例項:
yuminstallhttpd安裝
yum -yremovehttpd解除安裝
yumcheck-update檢查需要升級的軟體包
我們使用yumupdate加報名對指定的包升級,如果不加將全部升級
yumlist後面加包名就單列出此包
yuminfo軟體包名檢視軟體包的基本資訊
yumcleanall如下圖:
yumgrouplist
yumgroupinstall組名
yumgroupremove解除安裝組這裡就不截圖了
我們使用yumsearchstring1通過關鍵字來查詢軟體
yumhistory
yum provides zsh
yumreinstallzsh*
yum的基本操作我們講解完畢,下面我們來使用光碟來當做yum原始檔,配置個yum源伺服器;我們做此操作我們需要先把光碟掛載到本地,在這裡我們就不一一寫命令了,看圖說話
下圖:光碟掛載至本地
然後我們建立yum原始檔
編輯.repo檔案,如下圖:備註,cost是定義使用優先順序的。
我們使用yumrepolist檢視,如下圖:
其實我們也可以建立本地的yum源,我們使用yum install createrepo,然後creatrepo /path/path路徑,然後在修改baseurl的路徑為建立的路徑即可。
然後建立本地yum源目錄,此目錄首先自己要用mkdir建立好
修改repo檔案,並驗證
好了,這樣我們我軟體包管理結束了,我們一共說了兩種軟體包管理方法希望能幫助大家。
轉載於:https://blog.51cto.com/huichengu/1696426