## 第?16?章?軟件管理
**目錄**
[](ch16.html#id3069474)
[軟件管理方式](ch16s02.html)
[預編譯軟件包](ch16s03.html)
## 軟件管理方式
Linux 下安裝軟件,大致有兩種方式:二進制和源代碼。如何使用源代碼安裝軟件,參閱[第?18?章 _編譯工具鏈_](ch18.html "第?18?章?編譯工具鏈")
二進制預編譯軟件包,可以快速安裝部署你所需要的軟件,但是你不能決定軟件的特性。就像在麥當勞吃飯,只要幾分鐘,你就可以填飽肚子。但假設你不吃辣椒,或者你喜歡口感老一點的,你不能要求他們為你定做一份沒有辣椒的漢堡,或者把雞翅炸上半個小時;因為配方和工序都是固定的
使用源代碼安裝軟件,雖然比較耗時,但可以滿足你的特殊要求。就像在餐館里吃飯,你可以要求廚師為你作不含辣椒的菜以適應你的口味(軟件),還可以要求廚師控制火候,作的老一點,以適應你的腸胃(硬件)
## 預編譯軟件包
雖然不能定做,但依然有許多人會去吃麥當勞,因為麥當勞的漢堡符合大多數人的口味;同樣,預編譯軟件包也可以滿足大多數用戶的需求,如果沒有特殊需求,很少有人會選擇編譯軟件
最早的軟件包管理系統不支持網絡,類似于在 Windows 下安裝軟件,你必須獲取一個安裝包(比如通過網絡下載),然后在本地安裝它。使用這種方式安裝軟件的包管理系統主要有:dpkg(debian系)、rpm(redhat系)
由于 Linux 系統中,軟件包拆分的比較細[[22](ch16s03.html#ftn.id3069525)],安裝一個軟件可能要許多軟件包。
而用戶自己動手獲取這些軟件包,是一個十分繁瑣的過程,因此產生了通過網絡安裝軟件的方式:包管理系統自動分析你將安裝的軟件需要哪些軟件包,通過網絡下載、安裝、配置它們。
debian系 發行版通過 apt 系統實現網絡支持,配合本地的 dpkg 實現這一過程;redhat系 發行版則通過 yum 和 rpm 實現。而一些新派發行版,包管理系統兼具這兩種能力,例如 archlinux 的 pacman;而 gentoo 的 emerge 雖然基于源代碼編譯安裝,但也具備這種能力,參見[“emerge”一節](ch18s07.html "emerge")
以下是常見軟件包管理系統的基本操作:
**表?16.1.?包管理系統**
| 任務 | apt | zypp | yum | pacman | emerge |
| --- | --- | --- | --- | --- | --- |
| | Debian, Ubuntu | openSUSE | Fedora, CentOS (redhat系) | Archlinux | Gentoo |
| 安裝包 | apt-get install pkg | zypper install pkg | yum install pkg | pacman -S pkg | emerge pkg |
| 移除包 | apt-get remove pkg | zypper remove pkg | yum erase pkg | pacman -R pkg | emerge -C pkg |
| 更新包列表 | apt-get update | zypper refresh | yum check-update | pacman -Sy | emerge --sync | layman -S (添加倉庫) |
| 更新系統 | apt-get upgrade | zypper update | yum update | pacman -Su | emerge -avuDN world |
| 列出源 | cat /etc/apt/sources.list | zypper repos | yum repolist | cat /etc/pacman.conf | layman -L |
| 添加源 | edit /etc/apt/sources.list | zypper addrepo 倉庫地址 倉庫名稱 | add 倉庫 to /etc/yum.repos.d/ | edit /etc/pacman.conf | layman -a |
| 移除源 | edit /etc/apt/sources.list | zypper removerepo 倉庫名稱 | remove 倉庫 from /etc/yum.repos.d/ | edit /etc/pacman.conf | layman -d |
| 搜索包 | apt-cache search pkg | zypper search pkg | yum search pkg | pacman -Qs pkg | emerge --search |
| 列出已安裝的包 | dpkg -l | rpm -qa | rpm -qa | pacman -Qii | cat /var/lib/portage | more |
* 把 SUSE系 和 redhat系 排在前面,不是因為它們的軟件包管理系統比較先進,而是考慮到它們的用戶多
* * *
> [[22](ch16s03.html#id3069525)] 因為不受版權的限制,凡是可以被其它軟件利用的功能,都單獨分離出來
- 開源世界旅行手冊
- 授權
- 致謝
- 序言
- 更新紀錄
- 導讀
- 如何寫作科技文檔
- 部分?I.?氣候
- 第?1?章?GUI? CLI?
- 第?2?章?UNIX 縮寫風格
- 第?3?章?版本號的迷霧
- 第?4?章???Vim 還是 Emacs
- 第?5?章???DocBook 還是 TeX
- 第?6?章?完全用 Gnu/Linux 工作
- 第?7?章?病毒
- 第?8?章?磁盤 分區
- 第?9?章?文件系統
- 第?10?章???發行版介紹
- 第?11?章???編程語言
- 第?12?章?無根的根:無名師的 Unix 心傳
- 部分?II.?地理
- 第?13?章?基礎知識
- 第?14?章?命令系統
- 第?15?章?基本系統
- 第?16?章?軟件管理
- 第?17?章?核心工具集
- 第?18?章?編譯工具鏈
- 第?19?章?圖形界面
- 第?20?章?國際化
- 第?21?章???內核
- 第?22?章?Grub
- 第?23?章?服務器
- 第?24?章?Vim 編輯器
- 第?25?章?Emacs 入門
- 第?26?章?正則表達式
- 第?27?章?docbook 指南
- 第?28?章?Git 版本控制系統
- 第?29?章?ConTeXt 入門指南
- 部分?III.?景觀
- 第?30?章?終極 Shell -- ZSH
- 第?31?章?完美工作站 Archlinux
- 第?32?章?組織你的意念:Emacs org mode
- 第?33?章???Zsh+screen
- 第?34?章???gentoo stage3
- 第?35?章???硬件問題
- 第?36?章???網絡設置
- 第?37?章???自制 LiveCD
- 第?38?章?awesome
- 第?39?章?openbox 工作環境
- 第?40?章???Emacs muse
- 第?41?章???寫作工具鏈
- 第?42?章?使用 lftp
- 第?43?章???Firefox 使用技巧
- 第?44?章???FVWM
- 部分?IV.?地質
- 第?45?章?Unix
- 第?46?章???Gnu
- 第?47?章?軟件業自由之神——Richard Stallman
- 第?48?章?Linux
- 第?49?章?GNOME與KDE的戰爭
- 第?50?章???Vim Emacs
- 第?51?章???年代紀
- 第?52?章?我的選擇
- 第?53?章???補遺