apt-get 包管理工具學習

apt-get 命令是 Debian Linux 發行版中的 APT 軟件包管理工具。全部基於 Debian 的發行都使用這個包管理系統。deb 包能夠把一個應用的文件包在一塊兒,就如同 Windows 上的安裝文件。html

apt-get 命令

  • apt-get update:java

    從 /etc/apt/source.list 文件定義的源中去同步包的索引文件,這個命令並無更新軟件,而是獲取軟件狀態linux

  • apt-get upgrade:nginx

    根據 apt-get update 命令同步好的文件更新全部的軟件到最新,若是有相依性的問題,而此相依性須要安裝其它新的 package 或影響到其它 package 的相依性時,此 package 就不會被升級,會保留下來。git

  • apt-get dist-upgradegithub

    和 apt-get 相似,能夠聰明的解決相依性的問題,若是有相依性問題,須要安裝/移除新的 package,就會試着去安裝/移除它,因此一般這個會被認爲是有點風險的升級。shell

  • apt-get install packagenameubuntu

    安裝或者更新一個軟件包segmentfault

apt-get install nginx=1.10.1-1+netease5~wheezy  # 指定安裝的版本
apt-get install nginx                           # 安裝和更新最新的版本
apt-get install -s nginx                        # 模擬安裝時會安裝哪些軟件列表,不會真實安裝
複製代碼
  • apt-get remove packagenamebash

    刪除一個軟件包,保留配置文件

  • apt-get –purge remove packagename

    刪除一個軟件包,刪除配置文件

  • apt-get autoclean apt

    會把已裝或已卸的軟件都備份在硬盤上,因此有足夠空間的話,可讓這個命令來刪除你已經刪掉的軟件

  • apt-get autoclean apt

    這個命令會把安裝的軟件的備份也刪除,不過這樣不會影響軟件的使用的

如何查詢包的版本

  • 經過網站查詢:packages.ubuntu.com
  • apt-cache madison packagename 列出當前全部源的版本
  • apt-cache policy packagename 列出當前全部源版本,比 apt-cache 更詳細些
  • aptitude versions packagename 列出當前全部源版本,而且能夠模糊搜索包名稱,並說明當前是否已經安裝
  • apt-show-versions -a packagename

軟件源

Debian 系統中軟件源其實本質上就是一個軟件倉庫,在這個倉庫中包含了 Debian 系統中各類軟件,須要什麼軟件,只要記得正確的軟件名,就能夠很是簡單地經過 sudo apt-get install 命令進行安裝。

軟件源分爲官方軟件源和 PPA 軟件源,Debian 官方軟件源中包含了 Debian 系統中所用到的絕大部分的軟件,它對應的源列表是 /etc/apt/sources.list。PPA 軟件源即 Personal Package Archives(我的軟件包檔案)。有些軟件沒有被選入 Debian 官方軟件倉庫,爲了方便 Debian 用戶使用,Launchpad 提供了 PPA,容許用戶創建本身的軟件倉庫,自由的上傳軟件。PPA也被用來對一些打算進入Ubuntu官方倉庫的軟件,或者某些軟件的新版本進行測試。

/etc/apt/sources.list 和 /etc/apt/sources.list.d/ 用來設置軟件源地址,/etc/apt/sources.list.d/ 是一個目錄,便於分別管理不一樣的類型的軟件源,裏面的文件必須以 .list 結尾才能被認爲是軟件源設置文件, 因爲默認的官方軟件源通常在國外,下載速度很是慢,咱們常常須要替換成國內的軟件源。國內軟件源地址,通常咱們能夠經過 ping 命令測試每一個站點的網速。

如何添加 PPA 軟件源

經過 add-apt-repository 命令添加 PPA 軟件源,添加後放到 /etc/sources.list.d/ 下面

添加 PPA 軟件源的命令:sudo add-apt-repository ppa:user/ppa-name
刪除 PPA 軟件源的命令:sudo add-apt-repository --remove ppa:user/ppa-name
複製代碼
sources.list 文件格式

/etc/apt/sources.list 中軟件源格式通常以下面所示:

deb http://repo.163.org/netease wheezy main contrib non-free
deb-src http://repo.163.org/netease wheezy main contrib non-free

deb http://repo.hz.netease.com/netease wheezy main contrib non-free
deb-src http://repo.hz.netease.com/netease wheezy main contrib non-free
複製代碼
  • 第一列分爲 deb 或者 deb-src,前者表示軟件的位置,後者表示軟件源代碼的位置
  • 第二列表示的源鏡像的 url
  • 第三列表示對應的 debian 版本號

對於 debian 來講,每一個穩定發行版都會有一個代號,如 debian 6 對應 squeeze,debian 7 對應 wheezy,debian 8 對應 jessie,debian 9 對應 stretch,debian 10 對應 buster

- oldstable 顧名思義,就是之前的穩定發行版了。
- stable 是指如今的穩定發行版
- testing 指目前還暫時處於測試階段的 debian 發行版
- unstable 那就是不穩定版本了
複製代碼
  • 第四列表示軟件包類型,能夠是一個或者多個:
main       # Debian 裏最基本及主要且符合自由軟件規範的軟件 ( packages )。
contrib    # 這裏頭軟件雖然能夠在 Debian 裏頭運做,即便自己屬於自由軟件但多半倒是相依於非自由 ( non-free ) 軟件。
non-free   # 不屬於自由軟件範疇的軟件。
non-us     # 這個分類裏頭的軟件都來自非美國地區,當中可能有牽扯到專利、加密..等等問題。
marillat   # 對應 Christian Marillat 的軟件倉庫,包括mplayer, transcode等。
rareware   # 對應 rarewares.org 的軟件倉庫, 包括不少音效程序,如lame, musepack, beep media player等。
ustc       # 對應 debian@ustc 維護的一些軟件包,如 mule-gbk, gaim-openq, scim, stardict dicts, patched xpdf, irssi, xmms。
java       # 對應 Blackdown java。包括 j2re, j2sdk ,mozilla java plugin。
firefly    # 對應打過firefly補丁的包,包括 fontconfig mozilla mozilla-firefox pango1.0 qt-x11-free xft
misc       # 對應其它無分類的包,包括 nvidia-kernel, winex3, rox, chmsee等
複製代碼

通常在修改了 sources.list 文件後,都須要運行 sudo apt-get update 和 sudo apt-get dist-upgrade 來更新軟件

關於系統升級

通常系統升級時,都須要修改 sources.list 中的版本,而後再更新,以 Debian 7 升級到 Debian 8 爲例,要通過如下步驟:

  • 首先將系統升級到最新狀態
apt-get update
apt-get upgrade
複製代碼
  • 而後修改 sources.list
# 替換版本號
sed -i 's/wheezy/jessie/g' /etc/apt/sources.list
複製代碼
  • 再次運行升級
apt-get update && apt-get dist-upgrade
複製代碼
  • 最後重啓完成
reboot
複製代碼

參考文獻

相關文章
相關標籤/搜索