E N D
Linux的軟體包裝 • 1. RPM(RedHat Package Manager)(.rpm) 執行檔:套件名稱-版本-發行版次.平台.rpm(例如:bash-1.14.7-22.i386.rpm)原始檔:套件名稱-版本-發行版次.src.rpm(例如:bash-1.14.7-22.src.rpm)安裝指令:rpm -i 套件2. Slackware, TarBall(tar+gzip)(.tar.gz, tgz)執行檔:套件名稱-版本-發行版次.bin.tar.gz(例如:bash-1.14.7-22.bin.tar.gz)原始檔:套件名稱-版本-發行版次.tar.gz(例如:bash-1.14.7-22.tar.gz)安裝指令:tar -zxvf 套件3. Deb(Debian Linux)(.deb)執行檔:套件名稱_版本-發行版次.deb(例如:csh_5.26-10.deb)原始檔 格式檔:套件名稱_版本-發行版次.dsc(例如:bash_1.14.7-22.dsc)程式檔:套件名稱_版本-發行版次.orig.tar.gz(例如:bash_1.14.7-22.orig.tar.gz)修正檔:套件名稱_版本-發行版次.diff.gz(例如:bash_1.14.7-22.diff.gz) 安裝指令:dpkg --install 套件Deb需由下載的目錄名稱(binary-i386)來區分檔案平台
軟體套件的管理 RPM是Redhat提出的一個套件軟體標準 其他如SuSE、Mandriva與TurboLinux等發行版也都採用這個標準 將預編譯好的套件軟體包裝好,可以直接安裝 管理者省卻了繁雜編譯的步驟 套件資訊記錄在內部的套件資料庫
RPM套件的命名 i386是適合Intel相容指令集的處理器 64位元的版本時,就應選擇x86_64的套件軟體
RPM套件的命名 • 採“套件名稱-版本-修訂版次.發行版本.平台.rpm”方式命名,以提供套件名稱、版本、適用平台等資訊 • php-5.2.9-2.fc11.i586 • 套件名稱:php • 版本:5.2.9 • 修訂:2,修正bug 錯誤第2 版 • 適用發行版:fc11,也就是Fedora Core 11 • 適用平台:i586,適用所有Intel x86 處理器平台
RPM的使用模式 • 安裝(-i)、移除(-e)、升級(-U)、查詢(-q)、驗證(-V) • 安裝、移除、升級需有root權限 • 查詢、驗證不必
RPM套件的指令─查詢 • 查詢目前系統已安裝套件的各類資訊 • 查詢功能的主選項是-q • 常用的查詢選項有: • rpm -ql 套件名稱:列出已安裝套件中的檔案清單 • rpm -qf 檔案路徑:在RPM資料庫中尋找檔案隸屬那個套件 • rpm -qp 套件檔案名稱:查詢未安裝套件的資料 • rpm -qa:查詢RPM資料庫中已安裝的套件名稱 • rpm -qi:顯示RPM套件的資訊
RPM套件的指令─安裝 • 查詢系統特定檔案的來源安裝套件 • 安裝rpm套件需要有幾下的準備動作 • 系統管理者(root)的權限 • 從網路下載或光碟片取得rpm檔案 • 利用rpm安裝指令 • 安裝選項 • rpm指令安裝套件的主選項是-i,大都配合副選項v與h,在安裝過程中顯示「#」的進度列 • rpm -ivh rpm檔名
RPM套件的指令─安裝 • rpm -ivh 套件名稱:安裝指定套件 • 檢查相依性(dependency) • 檢查衝突 • 處理組態檔 • 設定組態 • 更新RPM資料庫
RPM套件的指令─安裝 • 套件的「相依性」 • 系統內的許多函式庫、設定檔與軟體套件常常是相互依賴的 • 如下圖A套件依賴M與N套件,必須先安裝M與N套件後,A套件才能成功安裝
RPM套件的指令─安裝 套件的「相依性」 若一個Linux系統目前只有安裝了X套件,現在有使用上的需求,必需安裝A套件
RPM套件的指令─安裝 • 套件的「相依性」 • 完整安裝A套件的步驟如下: • 步驟一:先安裝Y套件,才能成功安裝M套件。 • 步驟二:安裝M套件。 • 步驟三:先安裝Z套件,才能成功安裝N套件。 • 步驟四:安裝M與N套件。 • 步驟五:最後成功安裝A套件。
RPM套件的指令─安裝 • 強制安裝,忽略相依性 • --nodeps:忽略安裝前的相依性檢查,直接安裝。 • --force:若安裝一個已安裝好的套件,會出現錯誤告知已安裝該軟體,force子選項可忽略已安裝訊息,並再強制安裝一次,覆蓋已安裝套件。
RPM的其他模式 • rpm -e 套件名稱:移除指定套件 • rpm -e --nodeps 套件名稱:不理會依附關係,強制移除指定套件 • rpm -Uvh 套件名稱:升級指定套件 • rpm -Va:驗證所有套件中的檔案清單 • rpm -Vf 檔案名稱:在RPM資料庫中尋找檔案隸屬那個套件 • rpm -Vp 套件名稱:驗證指定套件 • rpm --rebuilddb:重建 rpm 資料庫
RPM套件的指令─驗證 • 要驗證目前系統中的檔案是否與原始套件相符, 可使用驗證模式。-V 參數可用來驗證套件的正確性。驗證模式會比較原始套件資訊及目前系統中的檔案資訊, 包括每個檔案的大小、MD5 (一種加密方式) checksum、權限、型別、擁有者及所屬的檔案群組。 • 在驗證模式中也可以使用上一節所提到的套件指定參數來指定特別的套件。例如:
RPM套件的指令─驗證 • 在驗證後沒有任何輸出, 表示套件正常。如有不一致的地方, RPM 會顯示錯誤碼。下表列出可能的錯誤碼及其代表的意義:
打包檔案的 tar 指令 tar 常用參數: • -c:建立一個新的 tar 檔。 • -v:顯示運作過程的資訊。 • -f:指定檔案名稱。 • -z:呼叫gzip壓縮指令執行壓縮、解壓縮。 • -j:呼叫 bzip2壓縮指令執行壓縮、解壓縮。 • -t:檢視壓縮檔案內容。 • -x:解開 tar 檔。
tar的使用(P 9-7) • tar -cvf 檔案.tar *:將目前目錄的所有檔案打包成一個檔案.tar • tar -cvzf 檔案.tar.gz *:將目前目錄的所有檔案打包且壓縮成一個tarball檔案(.tar.gz, .tgz) • tar -tvf 檔案.tar:列出在檔案.tar中的所有檔案 • tar -xvf 檔案.tar:解開在檔案.tar中的所有檔案 • tar -zxvf 檔案.tar.gz:解壓縮且解開在檔案.tar.gz中的所有檔案
gzip的使用(P 9-6) • gzip 檔案:壓縮檔案,以gz為副檔名 • gzip -d 檔案,gunzip 檔案:解壓縮以gz為副檔名的檔案 • gzip -d -f 檔案,gunzip -f 檔案:解壓縮以gz為副檔名的檔案,並強制覆蓋
YUM(Yellow dog Updater, Modifier) 套件之間相依性與版本的複雜性 管理面臨很大的挑戰 耗費管理者很多的時間與精神 YUM就是解決這類套件管理問題的解決方案
YUM(Yellow dog Updater, Modifier) • YUM的架構與步驟 • YUM將套件檔案集中在網路伺服器 • 建立起版本與相依性的資料庫 • 稱為YUM Server • 提供了查詢、安裝、移除與昇級等功能 • 使用者在Fedora上以yum指令連結YUM Server
YUM的執行步驟 • 根據套件的依附關係,分析套件所需的檔案 • 連接到到所設定的伺服器(分別設定在 /etc/yum.repo.d/fedora.repo, /etc/yum.repo.d/fedora-updates.repo, /etc/yum.repo.d/fedora-extras.repo)去下載套件及所需檔案 • 以 rpm 指令分別安裝套件及所需檔案
YUM的使用 • yum install 套件名稱:安裝套件 • yum update 套件名稱:更新套件 • yum upgrade 套件名稱:升級套件 • yum remove 套件名稱:移除套件 • yum list:列舉可用套件 • yum clean headers:清除在 /var/cache/yum 的header • yum clean packages:清除在 /var/cache/yum 的下載套件