




已阅读5页,还剩92页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 第14章 套件管理 2 前言 以前在Unix Linux作業系統要安裝軟體 往往都需要用文字模式的make指令來編譯程式 安裝過程稍嫌複雜 而不容易使用 因此 許多Linux發行版都自行開發 或沿用由其他發行版廠商開發的套件管理軟體 來幫助使用者可以輕鬆的安裝 移除及更新軟體 3 前言 本章 我們將介紹目前最被廣泛使用的RPM RedHatPackageManager 套件管理系統 以及為解決RPM常遇到的相依性問題而開發的Yum YellowdogUpdater Modified 套件管理程式 最後 也會為您說明如何安裝傳統的tarball套件 4 本章提要 14 1以RPM指令管理套件14 2使用Yum線上安裝 移除與更新套件14 3安裝自行下載的軟體14 4Linux軟體下載網站 5 14 1以RPM指令管理套件 RPM的全名為RedHatPackageManager 是一個由RedHat公司開發的套件管理系統 由於RedHat公司鼓勵大家使用此格式發行軟體及使用此管理系統 因此RPM被許多發行版採用為預設的套件管理系統 同時RPM也可以在Unix平台上執行 6 以RPM指令管理套件 14 1 1rpm指令概念說明14 1 2安裝套件14 1 3移除套件14 1 4升級與更新套件14 1 5查詢套件14 1 6套件驗證14 1 7rpm指令常用的查詢實例14 1 8如何解決套件相依性及查詢未安裝檔案所屬的套件 7 14 1 1rpm指令概念說明 為了讓讀者易於區別 底下我們將整個RPM套件管理系統簡稱為RPM 將管理RPM套件管理系統的程式稱為rpm程式或rpm指令 而將能夠被rpm程式處理的安裝套件稱為RPM套件 其關係可用下圖表示 8 rpm指令概念說明 9 14 1 1rpm指令概念說明 RPM的優點RPM套件檔名的命名原則rpm指令的操作方法 10 RPM的優點 使用RPM套件管理系統具有下列優點 而這也是RPM套件管理系統的設計目標 易於安裝 升級與移除套件 安裝傳統tar gz等格式的壓縮套件時 必須先將其解開壓縮到一個目錄中 然後再執行安裝的程序 而各套件的安裝方式又有所差異 有的要再編譯原始碼 有的要指定安裝的參數 實在頗為麻煩 RPM套件則將安裝需要的設定項目準備好 只要執行rpm指令 就可以安裝 升級套件 或移除已安裝的套件 11 RPM的優點 有強大的查詢功能 透過RPM的組態資料庫 我們可以查詢系統已安裝的套件 也可以查詢某個檔案是屬於哪個套件 而此套件又來自何處 能夠進行套件驗證 RPM提供套件驗證的功能 您可藉以驗證是否誤刪了某個套件中的檔案 而且RPM在安裝時會保留原來的設定檔 所以即使誤刪檔案 重新安裝也不必擔心遺失原來的設定 12 RPM的優點 支援套件以原始碼形式發行 RPM支援套件以原始碼的形式發行 在RPM套件中能包含原始程式 更新程式patch及完整的建構指令 因此我們在取得一個程式的更新版時 可以先看看程式的更新部分 再採取適當的行動 有興趣的讀者可至http www rpm org網站取得更多有關RPM的資訊 13 RPM套件檔名的命名原則 完整的RPM套件檔名由四個部分組成 其格式及意義如下 14 RPM套件檔名的命名原則 套件名稱 套件名稱用來說明該套件的用途 例如Apache伺服器主程式的套件名稱為httpd 說明文件的套件名稱為httpd manual 版本編號 該套件的版本資訊 版本編號與套件名稱間以 相隔 上例中3 10a 13的 13 稱為版次 套件在釋出之後 都有可能因為發現有某些問題而進行修改 再重新編譯 打包釋出 版次即記錄該套件是第幾次修正後的版本 15 RPM套件檔名的命名原則 平台 RPM套件是已經編譯好的程式檔 這樣的檔案通常只能適用於特定的操作平台 此處的訊息即用以標示該套件所適用的平台為何 常見的有i386 i586 i686及noarch等 其中i386表示該套件適用於Intel80386及其後的各種CPU 也就是從Intel386到486 Pentium PentuimII 都可以適用 i586 i686的意義與此相當 i586適用於586及其後的CPU 而noarch則表示沒有限制 副檔名 RPM套件的副檔名預設皆為 rpm 16 RPM套件檔名的命名原則 雖然使用PentiumCPU的機器可以使用i386的套件 但效能可能會較使用i586的套件稍差一點 有時還會看到此處標示為 src的RPM套件 此類套件稱為SRPM套件 是尚未編譯的程式原始碼 在安裝前需要自行編譯 17 rpm指令的操作方法 除了建構安裝套件外 rpm指令具有5種基本的操作模式 包含套件的 安裝 移除 升級 查詢及驗證 我們可以使用rpm help指令獲得完整的細節及參數 18 rpm指令的操作方法 要注意的是 在安裝 移除及更新套件時 必須取得root的權限 而查詢及驗證套件時則不用 以下我們將分別說明這5種操作模式 請您注意 上述rhviewer與稍後會提及的rhpainter套件 都是筆者舉例說明用的套件名稱 實際上並沒有這兩個套件 您可以執行manrpm指令 觀看線上說明 19 14 1 2安裝套件 使用rpm指令的安裝模式可以將套件內所有的元件放至系統中的正確路徑 安裝套件的指令是 20 安裝套件 以此指令安裝時 會顯示套件的名稱 不一定會與檔名相同 並顯示 字號以指示安裝程序正在進行中 rpm指令還能透過FTP或HTTP來進行遠距的套件安裝或查詢 使用方式與在本機上並無太大不同 只要在檔案前加上適當的URL位址即可 例如 21 安裝套件 使用遠距安裝時 建議使用 h參數 可以幫助您確認安裝程序還在進行中 此外 還可以使用 percent參數來得知安裝進度的百分比 在安裝套件時 有時會出現要安裝的套件已經安裝過 某個檔案已被其他的套件安裝 或是不同套件之間有相依性的問題 以下分別詳細說明 22 安裝套件 重複安裝套件套件中某個檔案已被其他套件安裝不同套件之間的相依性 23 重複安裝套件 要重複安裝一個原本就已經安裝的套件時 rpm指令會顯示出類似下面的錯誤訊息 如果您確定要安裝此套件 可以在命令列中加上 replacepkgs參數 使rpm指令忽略錯誤訊息 取代原有套件 24 套件中某個檔案已被其他套件安裝 如果要安裝的套件中 有某個檔案已被其他套件安裝於系統中 則rpm指令會顯示錯誤的訊息 25 套件中某個檔案已被其他套件安裝 要rpm指令忽略此訊息直接取代舊檔案 可使用 replacefiles參數 26 不同套件之間的相依性 有些RPM套件會與其他的RPM套件有相依性 這些套件通常要別的套件已先安裝於系統中才能正常執行 當您試圖要安裝這類RPM套件 則rpm指令會列出其所需的相關套件 27 不同套件之間的相依性 比較好的解決方式是將其所需要的套件先安裝好 以上例來說 先安裝rhviewer套件之後 再安裝rhpainter套件即可 此外 也可以加上 nodeps參數來略過相依性檢查 不過這樣強行安裝的結果可能會使套件不能正常執行 28 14 1 3移除套件 移除模式會將指定的套件元件全部刪除 但會保留已更改過的設定檔 移除RPM套件的指令如下 讀者要注意的是 這裡必須使用套件的名稱 rhviewer 或 rhviewer 3 10a 13 而不是使用當初安裝套件時所用的檔名 rhviewer 3 10a 13 i386 rpm 29 移除套件 如果在移除套件時出現類似下列訊息 代表移除這個套件會破壞其他套件的套件相依性 30 移除套件 此時您必須先移除rhpainter套件後 才能接著移除rhviewer 或者也可以使用 nodeps參數 即可忽略此訊息而強行移除套件 不過這樣可能會導致其他套件無法正常執行 31 14 1 4升級與更新套件 前面提及的rpm有5種工作模式 其中升級模式包含有升級和更新兩個部分 我們分別說明如下 升級模式更新模式 32 升級模式 升級模式會安裝使用者所指定的更新版本 並移除已安裝於系統中的相同套件 升級套件的指令如下 33 升級模式 升級模式的運作方式是將系統中的舊版本移除 再安裝新版本 您也可以使用升級模式取代安裝模式來安裝新版本 因為在沒有舊版本的情況下 使用 U這個參數仍可正常運作 以rpm指令升級套件時 如果有舊版的套件存在於系統中 則會看到如下的訊息 34 升級模式 這是rpm指令特有的設定檔智慧型升級訊息 因為有些套件的設定檔格式在不同版本間並不相容 因此rpm指令會將舊的設定檔加上 rpmsave副檔名儲存 並安裝新的設定檔 您可以在套件安裝後立即比較新舊設定檔 以決定是否要換回原來的設定 35 升級模式 升級模式下的錯誤除了包含移除與安裝模式下的錯誤外 還有一個比較特別的是 當使用者試圖安裝一個比現有套件更舊的套件時 會顯示如下訊息 36 升級模式 若決心要將套件 升級 到較舊的版本 可使用 oldpackage參數 37 更新模式 更新模式可算是升級模式的另一種使用方式 更新套件的指令如下 38 更新模式 rpm指令在更新模式下會檢查在指令列中所指定的套件是否比系統中原有的套件來得新 如果情況屬實 rpm指令會自動更新指定的套件 反之 若系統中並沒有指定套件的較舊版本 rpm指令就不會安裝此套件 而在升級模式下 不管系統中是否有較舊的版本 rpm指令都會安裝指定的套件 39 更新模式 如果您從網路下載了許多的套件 且想更新所有已經安裝在系統中的套件 未曾安裝的套件則不安裝 可以執行以下指令 如此RPM就會為我們更新所有系統中已存在的套件 40 14 1 5查詢套件 想要取得RPM套件的相關資訊可以使用查詢模式 使用 q參數可查詢一個已安裝的套件內容 如執行rpm qrhviewer指令將顯示rhviewer套件的套件名稱 版本及次版本 41 查詢套件 在查詢模式中可用套件指定參數配合查詢 42 查詢套件 也可以再加上資訊選擇參數來決定所要顯示的資訊 43 查詢套件 我們可以結合 qi參數得到一般性的套件資訊 44 查詢套件 對於顯示檔案列表的 l參數 還可以再加上 v參數以獲得較完整的資訊 其輸出格式類似ls l指令的結果 45 14 1 6套件驗證 要驗證目前系統中的檔案是否與原始套件相符 可使用驗證模式 V參數可用來驗證套件的正確性 驗證模式會比較原始套件資訊及目前系統中的檔案資訊 包括每個檔案的大小 MD5 一種加密方式 checksum 權限 型別 擁有者及所屬的檔案群組 在驗證模式中也可以使用上一節所提到的套件指定參數來指定特別的套件 例如 46 套件驗證 在上例中前3個指令會比較RPM組態資料庫與目前系統中的檔案 而第4個指令則是比較原始 rpm檔的內容與目前系統中的檔案 適用於RPM組態資料庫毀損或遭人修改的狀況下 47 套件驗證 在驗證後沒有任何輸出 表示套件正常 如有不一致的地方 RPM會顯示錯誤碼 下表列出可能的錯誤碼及其代表的意義 48 14 1 7rpm指令常用的查詢實例 這裡再舉幾個例子 加深對rpm指令的了解 查詢套件所安裝的檔案 安裝某個套件之後 常常困擾人的是 不曉得這個套件究竟被裝到哪裡去 此時只要執行rpm qlpackage name指令即可 例如 49 rpm指令常用的查詢實例 查詢是否刪除套件檔案 當您誤刪了某些檔案 又不知道到底刪掉些什麼時 只要執行rpm Va指令即可對系統做完整的套件驗證 得知是否刪除了某些套件檔案 查詢檔案屬於哪個套件 遇到一些不認得的檔案 想要知道這個檔案是否屬於某個套件 可執行rpm qf 完整路徑 檔案名稱指令查詢 50 rpm指令常用的查詢實例 驗證套件的正確性 上兩個例子可以結合使用 例如您懷疑某個程式 如vi 有問題 而想對該程式進行驗證 可以執行rpm Vf bin vi指令檢查 查詢套件的相關說明文件 想要取得某個程式套件 如ispell 的更多資訊 可執行rpm qdf usr bin ispell以得知這個程式所屬的說明文件有那些 其輸出如下 51 rpm指令常用的查詢實例 52 14 1 8如何解決套件相依性及查詢未安裝檔案所屬的套件 若您在安裝Linux時 沒有選擇安裝所有的套件 而是計畫在有需要時才自行安裝個別的套件安裝 或是想安裝自己從網路下載的各種套件 此時 常常會遇到一些相依性的問題 例如 筆者在安裝PHP套件時 便遇到以下狀況 53 如何解決套件相依性及查詢未安裝檔案所屬的套件 54 如何解決套件相依性及查詢未安裝檔案所屬的套件 為了正確安裝PHP套件 必須先安裝缺少的檔案 由於筆者安裝的是發行版官方發行的套件 因此rpm指令能幫我們判斷缺少的檔案在哪些套件檔內 只要依據建議 在光碟片或是到官方網站上取得這些套件 先行安裝即可解決此相依性問題 如果安裝的是非官方發行的套件 rpm指令便無法給我們建議了 此時要怎麼知道安裝哪些套件才會有這2個檔案呢 55 如何解決套件相依性及查詢未安裝檔案所屬的套件 您可至 56 如何解決套件相依性及查詢未安裝檔案所屬的套件 有時候兩個套件之間可能會發生互相需要的情形 例如前面筆者安裝PHP套件時 rpm指令要求先行安裝php pear套件 可是當筆者安裝php pear套件 卻又顯示需要PHP套件 57 如何解決套件相依性及查詢未安裝檔案所屬的套件 這樣不就發生無解的無限迴圈嗎 此時請將這兩個RPM套件檔放在同一個目錄內 如下使用萬用字元同時安裝即可 58 14 2使用Yum線上安裝 移除與更新套件 Yum YellowdogUpdater Modified 套件管理程式最早由DukeUniversity開發 其與RPM套件管理程式一樣 用以管理RPM套件 並且具有線上安裝 移除 與更新套件的功能 Yum套件管理程式最為人稱道的一點在於 能自動判斷並解決RPM套件的相依性問題 因此 Yum可以說是一套全自動化的套件管理工具 可以幫系統管理者省下不少安裝與更新套件的時間 59 使用Yum線上安裝 移除與更新套件 目前使用人數最多的FedoraCore發行版已經開始採用Yum套件管理程式 以下我們將以該發行版為例介紹Yum的使用方式 Yum套件管理系統的官方網站為http linux duke edu projects yum 60 使用Yum線上安裝 移除與更新套件 設定Yum的套件儲藏庫使用Yum線上安裝套件使用Yum移除套件使用Yum查詢與搜尋套件使用Yum線上更新套件 61 設定Yum的套件儲藏庫 Yum預設使用FedoraCore的官方網站為套件的儲藏庫 Repository 當您想要使用yum指令安裝某個套件時 只要指定套件名稱 Yum就會自動到儲藏庫下載該套件檔 並且會同時尋找其他需要的檔案一起下載 然後再進行安裝 62 設定Yum的套件儲藏庫 由於FedoraCore的官方網站位於美國 其他國家使用者連線時的網路速度可能不佳 加上全世界可能同時有上千台主機需要下載檔案 所以網路塞車的情形大概是無法避免的 筆者建議將儲藏庫改為距離您最近的映射站 增加檔案下載的效率 同時也能減少官方網站的負荷 63 設定Yum的套件儲藏庫 FedoraCore的台灣映射站為義守大學 因此請開啟 etc yum conf 如下修改 64 設定Yum的套件儲藏庫 65 設定Yum的套件儲藏庫 編輯完成後 便將base與updates released儲藏庫設定為義守大學 Yum就不用遠渡重洋到美國下載檔案了 66 使用Yum線上安裝套件 使用yum指令安裝套件的語法如下 筆者以安裝PHP套件為例 介紹yum指令的線上安裝功能 67 使用Yum線上安裝套件 68 使用Yum線上安裝套件 69 使用Yum線上安裝套件 70 使用Yum線上安裝套件 使用yum指令安裝套件是不是很輕鬆又簡單呢 今後就不需要辛苦地尋找套件在哪一片光碟 也不用再為了相依性問題而煩惱了 71 使用Yum移除套件 使用yum指令移除套件的語法如下 筆者以移除httpd套件為例 說明如何使用yum指令移除套件 72 使用Yum移除套件 73 使用Yum移除套件 74 使用Yum查詢與搜尋套件 使用yum指令時只需要指定名稱便可以安裝套件 不過要如何知道有哪些套件可以安裝呢 如果您要查詢目前系統未安裝 但是儲藏庫內有的套件 請如下操作 75 使用Yum查詢與搜尋套件 76 使用Yum查詢與搜尋套件 如果想要查詢該套件的介紹 則請執行yuminfo套件名稱即可觀看套件介紹 不清楚套件名稱時 可以使用關鍵字搜尋套件 語法為yumsearch關鍵字 例如想尋找與DNS相關的套件 可執行yumsearchDNS指令搜尋 77 使用Yum線上更新套件 yum指令更新套件的語法為 在更新套件前 可執行下面指令檢查目前系統中是否有需要更新的套件 78 使用Yum線上更新套件 79 使用Yum線上更新套件 看來已經有很多套件需要更新了 以下以更新kdelibs套件為例 說明如何更新套件 80 使用Yum線上更新套件 81 使用Yum線上更新套件 若您想要一次更新系統內所有套件 則可以執行下面指令 Yum還提供了自動更新的功能 每天深夜主動檢查並下載新版本的套件加以更新 如果您想要使用此功能 請執行下面指令開啟 82 使用Yum線上更新套件 若想要關閉自動更新功能 則請執行 etc rc d init d yumstop 83 14 3安裝自行下載的軟體 除了RPM套件以外 在網路下載軟體時 最常見的是 tar gz或tgz檔 這是傳統最常用的格式 稱為Tarball 我們曾說明執行tar指令加上 zxvf參數 便可以將Tarball檔案解壓縮 而Tarball檔案在解開後 有下列2種檔案格式 84 安裝自行下載的軟體 原始碼格式 軟體以原始碼方式散播 通常以C或C 等程式語言寫成 您需要安裝gcc及make等套件才可編譯程式 至於編譯及安裝的方式 請參考該程式目錄下的README或INSTALL說明檔 稍後我們也將舉實例說明 要自行編譯 安裝原始碼格式的Tarball檔案 需要安裝gcc make autoconfig等套件 85 安裝自行下載的軟體 執行檔格式 軟體以執行檔 二進位 的方式散播 因此下載時 請注意您的作業系統版本及CPU種類 以Apache軟體為例 除了提供原始碼下載之外 也提供了執行檔下載 執行檔依CPU種類區分成i686 IBM相容PC PowerPC 如麥金塔 而Linux作業系統的類別中 分別對RedHatLinux FedoraCore及SlackwareLinux做了最佳化 至於安裝的方式 請參考該程式目錄下的說明檔 86 安裝自行下載的軟體 下面筆者以下載lsalarm 一個可定時播放音樂檔的鬧鐘程式 的原始碼為例 來說明如何編譯及安裝 首先請到 87 安裝自行下載的軟體 88 安裝自行下載的軟體 瀏覽README說明檔之後 我們得知編譯及安裝步驟分為下列3部分 大致上原始碼的安裝程式都是如此 但請仍以說明檔為主 configure 執行程式目錄下的指令稿 偵測目前系統的環境 及產生編譯程式時所需的相關設定檔 若加上 prefix參數可以指定要將程式安裝在何處 make 編譯程式 makeinstall 安裝編譯好的程式 需以root身份執行 89 安裝自行下載的軟體 因此執行以下指令編譯及安裝 裝好之後 會發現在 tmp lsalarm下的bin目錄 有一個名為lsalarm的執行檔 執行 tmp lsalarm bin lsalarm 指令 即可啟動鬧鐘程式 90 安裝自行下載的軟體 雖然安裝Tarball格式的套件時 可自行指定套件的安裝目錄 但一般建議將自行安裝的程式安裝在 usr local目錄下 這樣管理上較為方便 91 RPM套件與Tarball套件應如何選擇 如果想要安裝的套件有rpm格式
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年病理学习题库+参考答案
- 2025年事业单位化工类综合能力测试试卷及答案
- 2025年北京市事业单位教师地理学科专业知识考试试卷真题模拟解析
- 2025年甘肃省平凉市泾川县丰台镇考聘大学生村文书考前自测高频考点模拟试题及完整答案详解一套
- 2025辽宁鞍山市千山区公益性岗位招聘1人考前自测高频考点模拟试题及参考答案详解1套
- 2025年科学研究和技术服务业事业单位招聘考试综合类无领导小组讨论面试真题模拟试卷
- 鹤岗初中联考试卷及答案
- 河南教资考试题目及答案
- 电信用户行为分析-第1篇-洞察与解读
- 5G驱动设备智能互联-洞察与解读
- 餐饮食堂竞标标书
- 老年人个案服务第二次访谈记录
- 肛肠科手术及护理课件
- 蚁群算法课件完整版
- 大学数学《实变函数》电子教案
- 乌鲁木齐出租车区域考试题
- YY/T 0640-2008无源外科植入物通用要求
- GB/T 29531-2013泵的振动测量与评价方法
- GB/T 2637-2016安瓿
- FZ/T 13001-2013色织牛仔布
- 供应商质量能力提升计划课件
评论
0/150
提交评论