APT

高级打包工具
apt-get在安裝前要求確認
apt-get在安裝前要求確認
当前版本
  • 2.9.2 (2024年4月23日;穩定版本)[1]
編輯維基數據鏈接
源代码库
  • salsa.debian.org/apt-team/apt.git
編輯維基數據鏈接
编程语言C++
操作系统跨平台
平台Unix和类Unix操作系统
类型软件包管理系统
许可协议GNU GPL
网站wiki.debian.org/Apt wiki.debian.org/Teams/Apt

高级打包工具(英語:Advanced Packaging Tools,缩写为APT)是Debian及其衍生的Linux軟體包管理器。APT可以自动下载,配置,安裝二进制或者源代码格式的软件包,因此简化了Unix系統上管理软件的过程。APT最早被設計成dpkg的前端,用來處理deb格式的軟件包。現在經過APT-RPM組織修改,APT已經可以安裝在支援RPM的系統管理RPM套件。

構成

APT由以下的幾個主要的命令構成:

  • apt-get
  • apt-cache
  • apt-file

在Debian系統中,APT建構於dpkg之上。

安裝源

APT的軟體安裝來源在Debian安裝的時候即可進行初始設置,除了Debian官方的網路安裝來源之外,也可以使用Debian的安裝光碟,甚至可以從非官方的安裝來源中下載非官方的軟體。APT同時也可以從一些安裝來源中下載原始碼軟體,並且自行編譯、安裝。

依賴關係處理

APT會從每一個安裝源下載一個軟件包的列表。這個列表中有這個安裝源所包含的可用軟件包的信息。在可能的情況下,APT會安裝最新的軟件包,被安裝的軟件包所依賴的其他軟件包也會被安裝,建議安裝的軟件包則會在屏幕中顯示但是不會被安裝。不過在有一些情況下APT由於依賴關係不能安裝軟件包,例如:這個軟件包和系統中的其他軟件包衝突,或者這個軟件包依賴的軟件包在任何安裝源中均不存在或沒有要求的版本。在這種情況下,APT會返回錯誤信息並且中止,使用者需要自行解決依賴問題。

軟件包更新方式

Debian系統的一大特色即為「永不停機」,事實上,APT達到了這一點。在軟體被升級的時候,它仍然可以繼續服務。APT可以智能地從安裝來源下載最新版本的軟體並且安裝,而無須在安裝後重新啟動電腦(除了更新Linux內核之外)。所有的配置都可以得到保留,升級軟體不再是一個棘手的問題。

發行版升級

APT最使人稱道的特點在於可以從一個Debian發行版升級到新的Debian發行版,例如從woody升級到sarge。APT可以升級絕大部分滿足依賴關係的軟體,但是也可能要刪除,或添加新的軟體以滿足依賴關係。

前端

Synaptic

APT擁有不少的前端程序:

名稱 運行界面 最新版本
aptitude 字符終端 0.2.15.9-2
Synaptic 圖形界面 0.75.13
GNOME 軟體 圖形界面 0.4.7-1.2
Wajig英语Wajig 兼容 2.0.25

示例

搜索

在終端機裡輸入:

  • apt-cache search <package>

這樣系統會列出与<package>名称相匹配的套件。

安裝

在終端機裡輸入:

  • apt-get install <package>

這樣系統會自動下載<package>以及所有的依存套件,同時進行套件的安裝。

移除

在終端機裡輸入:

  • apt-get remove [--purge] <package>

這樣系統會自動移除<package>以及任何依此存套件的其它套件。 --purge指明套件應被完全清除。

升級

在終端機裡輸入:

  • apt-get update

這樣系統會自動由映射點更新套件列表,如果想安裝最新套件,必須先運行一次。每次修改了 /etc/apt/sources.list後,也必須執行一次。

在終端機裡輸入:

  • apt-get upgrade [-u]

這樣系統會自動將所有已經安裝在系統內的套件升級為最新版本。如果一個套件改變了依存關係,而需要安裝一個新的套件時,它將不會被升級,而是標識成hold。如果某個套件被設置hold標號,就不會被升級。

在終端機裡輸入:

  • apt-get dist-upgrade [-u]

和apt-get upgrade類似,dist-upgrade會安裝和移除套件來滿足依存關係,因此具有一定的危險性。

彩蛋

在终端输入apt-get -h会在末尾出现“This APT has super cow power(該APT有著超級牛力)。

在终端输入apt-get moo会在屏幕上显示一头牛,下方显示“Have you mooed today?”(您今天哞哞叫了吗?)。

                 (__) 
                 (oo) 
           /------\/ 
          / |    ||   
         *  /\---/\ 
            ~~   ~~   
..."Have you mooed today?"...

与apt-get相似的一个叫做aptitude的程序在aptitude -h的末尾加上了“This aptitude does not have Super Cow Powers.(这个aptitude没有超级牛力)”。

在后面加上moo(即输入aptitude moo),并且分别加上选项“-v”,“-vv”,“-vvv”,“-vvvv”,“-vvvvv”,“-vvvvvv”(即输入aptitude -v moo;输入aptitude -vv moo;等等),则会有如下输出:

 $ aptitude moo
 There are no Easter Eggs in this program.(此軟體沒有復活節彩蛋程式。)
 $ aptitude -v moo
 There really are no Easter Eggs in this program.(此軟體真的沒有復活節彩蛋程式。)
 $ aptitude -vv moo
 Didn't I already tell you that there are no Easter Eggs in this program?(我不是已經告訴你這個軟體真的沒有復活節彩蛋程式了嗎?)
 $ aptitude -vvv moo
 Stop it!(停啦!)
 $ aptitude -vvvv moo
 Okay, okay, if I give you an Easter Egg, will you go away?(好啦,好啦,如果我給你復活節彩蛋,你是不是就閃人?)
 $ aptitude -vvvvv moo
 All right, you win.(好啦,你赢了。)
                               /----\
                       -------/      \
                      /               \
                     /
  |-----------------/                  --------\
   ----------------------------------------------
 $ aptitude -vvvvvv moo
 What is it?  It's an elephant being eaten by a snake, of course.(這是什麼? 這當然是一隻大象被一隻蛇吞掉。)

而apt系列的另一个名为"apt-build"的软件包也具有相似的功能:

 $ apt-build moo
          (__)    ~
          (oo)   /
      _____\/___/
     /  /\ / /
    ~  /  * /
      / ___/
 *----/\
     /  \
    /   /
   ~    ~
 ..."Have you danced today? Discow!"...
 (意为:今天你跳舞了吗?迪斯可!)

软件编写者特地将Disco(迪斯可)一词改为"Discow",以体现"Cow"(奶牛)之意。

參見

  • 自由软件主题
  • iconLinux主题
  • icon软件主题

参考文献

  1. ^ 2.9.2 · Tags · APT Developers / apt · GitLab. 2024年4月23日 [2024年4月28日] (英語).  引文格式1维护:未识别语文类型 (link)

外部連結

社群基础
  • Debian會議
  • Software in the Public Interest英语Software in the Public Interest
  • Debian自由软件指导方针
  • Debian社群契约英语Debian Social Contract
  • Alioth英语Alioth (Debian)
软件
变种
非官方衍生
人物
  • 伊恩·默多克
  • 布魯斯·佩倫斯
  • 伊恩·傑克森英语Ian Jackson
  • Wichert Akkerman英语Wichert Akkerman
  • Ben Collins英语Ben Collins
  • Bdale Garbee英语Bdale Garbee
  • Martin Michlmayr英语Martin Michlmayr
  • Branden Robinson英语Branden Robinson
  • Anthony Towns英语Anthony Towns
  • Sam Hocevar英语Sam Hocevar
  • Steve McIntyre英语Steve McIntyre
  • Stefano Zacchiroli英语Stefano Zacchiroli
  • Lucas Nussbaum英语Lucas Nussbaum
  • 分类 分類
  • 文件 資源
  • 模板模板
Ubuntu
一般
人物
  • Jono Bacon英语Jono Bacon
  • Ben Collins
  • Benjamin Mako Hill英语Benjamin Mako Hill
  • Ian Jackson英语Ian Jackson
  • Scott James Remnant英语Scott James Remnant
  • 马克·沙特尔沃思
  • Jeff Waugh英语Jeff Waugh
  • Jane Silber英语Jane Silber
衍生版
官方版本
社区支持
第三方
已终止
软件
  • Bazaar英语GNU Bazaar
  • Juju英语Juju (software)
  • Mir显示服务器
  • Startup Disk Creator英语Startup Disk Creator
  • 软件更新器
  • Ubiquity
已终止
第三方
技术和用户界面
第三方
硬件
  • System76
  • Ubuntu Edge英语Ubuntu Edge
支持
  • Ask Ubuntu
  • Launchpad
  • Medibuntu英语Medibuntu
  • Paper cut bug英语Paper cut bug
  • Ubuntu受限額外程式
  • Ubuntu专业认证英语Ubuntu Professional Certification
  • Ubuntu论坛英语Ubuntu Forums
  • Ubuntu OneUbuntu SSO英语Ubuntu Single Sign On
第三方
  • GetDeb英语GetDeb
字体
媒体
相关主题
  • 分类 分类
  • 共享资源页面 共享资源
  • 维基百科图书 书籍
  • 维基学院页面 维基学院
 
编译包(二进制
Linux
格式
Dpkg
RPM
tarball
  • slapt-get英语slapt-get
  • slackpkg英语slackpkg
  • netpkg英语netpkg
  • swaret英语swaret
其他
MacOS
Windows
TrueOS
Solaris
  • IPS英语Image Packaging System
  • Pkgutil英语Pkgutil
嵌入式操作系统
行動作業系統
電子遊戲機
跨平台
  • Dpkg
  • IPS英语Image Packaging System
  • OpenPKG英语OpenPKG
  • pkgsrc英语pkgsrc
  • Zero Install英语Zero Install
  • IBM SmartCloud Enterprise英语IBM cloud computing#IBM SmartCloud
  • Nix
  • wpkg英语wpkg
  • Steam
插件
Google Chrome
Firefox
  • 附加组件
Z/OS
  • SMP/E英语SMP/E
 
非编译包(源代码
Linux
MacOS
混合系统
元包管理器英语Meta package managers
Python
  • PyPI
  • pip
  • easyinstall英语Setuptools#EasyInstall
  • PyPM英语Python Package Manager
  • Anaconda
  • Enthought Canopy英语Enthought
  • 列表级条目 列表英语List of software package management systems
  • 分类 分类
  • 共享资源页面 共享资源