十四:安裝軟件,玩轉系統!軟件包的管理

          說起安裝軟件,我們應該很熟悉。在Windows系統下,我們可能需要購買一張軟件安裝光盤,然后執行“安裝軟件”,然后不斷的下一步就好。在Linux的圖形界面中,也有類似的操作,但是這里并不討論圖形界面的安裝,我們需要知道在命令行下進行軟件的安裝。
          Linux的軟件安裝和Windows有諸多不同,比如Windows有注冊表的概念,但是Linux沒有;Windows的軟件,相關的文件一般都位于自己的目錄下,但是Linux不是;Windows的軟件有安裝版和綠色版,或者說,正版和盜版,但是Linux沒有。
          Linux通過軟件包來安裝軟件,包是一個文件壓縮的集合,可以理解為一個壓縮包,里面包含了軟件的程序,數據,配置,幫助文檔,腳本等等,那么我們如何來獲得軟件包呢?
          想獲得軟件包,就需要先知道軟件包管理工具。眾多的發行版Linux分別隸屬兩大包管理技術陣營,Debian和Red Hat,這兩種風格的Linux使用了不同的包管理技術,Debian風格的Linux使用dpkg底層工具,Red Hat風格的Linux則使用rpm底層工具,但是不同的發行版可能使用了不同的上層工具。

          *你可以簡單理解為:底層包管理工具就是擁有基本包管理功能的工具,上層工具就是對底層工具的優化和拓展,更方便使用。

          這里以Rad Hat風格的Linux為例,使用rpm及其上層工具yum作為演示

          安裝一個軟件包
          示例:rpm -i 軟件包,這是最基本的使用,選項-i表示install安裝,一般我們會使用rpm -ivh來安裝一個軟件包,-v表示安裝的內容信息,-h來開啟進度提示,選項vh一般聯合使用,但是在安裝的過程中,可能會碰到依賴的問題。比如你要安裝一個mysql的控制臺程序,那么首先你需要安裝mysql,否則你安裝了mysql的控制也沒法使用,雖然你可以強制安裝。安裝中,出現依賴的問題,那么你需要手動的先安裝依賴的軟件包,才能繼續安裝你所需要的軟件包。

          卸載一個軟件包
          示例:rpm -e 軟件包,如果這個軟件包依賴了其他的應用,那么刪除的過程中會有錯誤信息,如果你想強制刪除他的話(并不建議這么做),你可以添加–nodeps選項強制刪除。
          示例:rpm -e –nodeps 軟件包
          好了,如果排除其他的細節,那么安裝軟件就到此為止了唄?在Windows下,你或許可以這么說,但是Linux下的軟件管理可不止安裝和卸載這么簡單。

          查詢一個軟件是否安裝
          示例:rpm -q 需要查詢的軟件名,-q是查詢的選項。如果已經安裝,那么就顯示相關信息
          但是這有時并不準確,因為軟件名可能很長,你給定的名字可能不完全對,所以通過過濾來查找,結果會更理想。
          示例:rpm -qa|grep 軟件名,-a表示查詢所有軟件包

          常見查詢命令

          查看一個文件所屬的軟件包
          示例:rpm -qf(file) 文件名
          查看一個軟件包的信息,軟件包必須要安裝才行
          示例:rpm -qi(information)文件
          查看一個軟件包的信息,安裝與否皆可
          示例:rpm -qip(package)軟件包名
          查看一個軟件包安裝了哪些文件(我們會看到,一個軟件安裝的文件會分布在系統中各個不同的目錄中,這和Windows就很不同,Windows軟件通常會把各種作用的文件都放在自己的目錄下,而linux的軟件則會根據系統目錄的一般作用而放入不同的目錄)
          示例:rpm -ql 軟件包名
          查看一個軟件包將要安裝哪些文件
          示例: rpm -qlp 軟件包名

          一些其他常見選項

          排除軟件包的文檔:–excludedocs
          指定安裝的路徑:–prefix,使用時添加–prefix=/XXX/XXX,但是要注意,使用rpm安裝或者yum安裝軟件包,該選項的意義不大,因為安裝的都是二進制軟件包,在安裝的時候就已經規定好了軟件包要安裝的文件的位置,除了使用rpm和yum安裝二進制軟件包,還有通過源碼包和腳本安裝的方式進行軟件安裝。
          測試一個軟件的安裝:–test
          安裝之前我們需要知道安裝這個軟件可能出現的問題,所以在安裝之前我們可以先測試安裝,把問題暴露出來。
          校驗一個軟件包
          示例:rpm -V 軟件名,如題,對一個軟件包含的所有文件進行校驗,如果沒有問題,那么沒有輸出。
          如果有問題,那么會產生一個可疑文件列表,列表中會用不同標識來標識可疑文件的疑點。

          這些標識如下:
          5:使用MD5校驗,校驗值發生變化,說明文件的內容被修改了
          • S:文件大小產生了變化
          • L:文件的鏈接特征發生變化
          • D:文件的設備特征發生變化
          • U:文件的用戶發生變化
          • G:文件的用戶組發生變化
          • M:文件的權限發生變化
          由于底層工具rpm在對依賴的管理上存在不足,所以yum工具的出現,很好的解決的這個問題,在安裝的過程中,yum可以自動解決軟件包的依賴問題,不必再手動去一個一個安裝依賴了。

          一些常見使用方式:
          • yum install 軟件包名,安裝一個軟件包
          • yum chech-update 軟件包名,檢查一個軟件包是否有升級
          • yum update 軟件包名,升級一個軟件包
          • yum list,列出yum源中所有的軟件包,同時會羅列一些狀態信息
          • yum info 軟件包名,查看軟件包的描述
          • yum remove 軟件包名,刪除一個軟件包
          Debian風格linux的軟件包底層管理工具是dpkg,上層管理工具是apt-get,在使用方式上是類似的,這里不再贅述幫助文檔的內容,因為這些實現性質的操作,看十遍不如動手做一遍來得印象深刻

          posted on 2015-07-23 10:42 都較瘦 閱讀(101) 評論(0)  編輯  收藏 所屬分類: Linux

          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導航

          統計

          公告

          博客定位:囿于目前的水平,博客定位在記錄自己的學習心得和隨手的練習

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 昆明市| 芒康县| 布尔津县| 六安市| 海城市| 页游| 合作市| 永泰县| 峨眉山市| 龙泉市| 县级市| 伊春市| 合川市| 沙坪坝区| 丹棱县| 东莞市| 香格里拉县| 乐安县| 卢湾区| 潍坊市| 法库县| 哈尔滨市| 和林格尔县| 阿拉善左旗| 平原县| 洮南市| 华宁县| 新干县| 孟连| 海宁市| 棋牌| 连江县| 彭州市| 台中县| 瑞安市| 桓台县| 莒南县| 溆浦县| 六盘水市| 万全县| 青冈县|