【Linux】-apt-get命令
apt-get,是⼀条linux命令,适⽤于deb包管理式的操作系统,主要⽤于⾃动从互联⽹的软件仓库中搜索、安装、升级、卸载软件或操作系统。
Advanced Package Tool,⼜名apt-get,是⼀款适⽤于Unix和Linux系统的应⽤程序管理器。最初于1998年发布,⽤于检索应⽤程序并将其加载到Debian Linux系统。Apt-get成名的原因之⼀在于其出⾊的解决软件依赖关系的能⼒。其通常使⽤.deb-formatted⽂件,但经过修改后可以使⽤apt-rpm处理红帽的Package Manager(RPM)⽂件。
使⽤apt-get的主流Linux系统包括Debian和Ubuntu变异版本。⼤多数情况下,从命令⾏运⾏该⼯具。桌⾯上有⼏个图形前端可以使⽤,包括Synaptic Package Manager、Ubuntu Software Center、Aptitude和Kpackage。Raspberry Pi和Beaglebone Black nanoLinux版⽤户可以很容易地使⽤apt-get加载程序,因为这些系统通常来⾃Ubuntu或Debian代码。是debian,ubuntu发⾏版的包管理⼯具,与红帽中的yum ⼯具⾮常类似。 [1]
apt-get命令⼀般需要root权限执⾏,所以⼀般跟着sudo命令。
常⽤命令:
apt-get install packagename  #安装⼀个新软件包
apt-get remove packagename #卸载⼀个已安装的软件包(保留配置⽂档)
apt-get remove --purge packagename #卸载⼀个已安装的软件包(删除配置⽂档)
apt-get autoremove packagename #删除包及其依赖的软件包
apt-get autoremove --purge packagname #删除包及其依赖的软件包+配置⽂件,⽐上⾯的要删除的彻底⼀点
dpkg --force-all --purge packagename #有些软件很难卸载,⽽且还阻⽌了别的软件的应⽤,就能够⽤这个,但是有点冒险。
⽆论⽤户使⽤哪些⼿段配置APT软件源,只是修改了配置⽂件——/etc/apt/sources.list,⽬的只是告知软件源镜像站点的地址。但那些所指向的镜像站点所具有的软件资源并不清楚,需要将这些资源列个清单,以便本地主机知晓可以申请哪些资源;
1、sudo apt-get update
  apt-get update命令会扫描每⼀个软件源服务器,并为该服务器所具有软件包资源建⽴索引⽂件,存放在本地的/var/lib/apt/lists/⽬录中。使⽤apt-get执⾏安装、更新操作时,都将依据这些索引⽂件,向软件源服务器申请资源。因此,在计算机设备空闲时,经常使⽤“apt-get update”命令刷新软件源,是⼀个好的习惯
2、sudo apt-get upgrade
  将系统中的所有软件包⼀次性升级到最新版本,可以很⽅便的完成在相同版本号的发⾏版中更新软件包。在依赖关系检查后,命令列出了⽬前所有需要升级的软件包,在得到⽤户确认后,便开始更新软件包的下载和安装。当然,apt- get upgrade命令会在最后以合理的次序,安装本次更新的软件包。系统更新需要⽤户等待⼀段时间。
3、sudo apt-get install XXX
  使⽤“apt-get install”下载软件包⼤体分为4步:第⼀步,扫描本地存放的软件包更新列表(由“apt-get update”命令刷新更新列表,也就是/var/lib/apt/lists/),到最新版本的软件包;第⼆步,进⾏软件包依赖关系检查,到⽀持该软件正常运⾏的所有软件包;第三步,从软件源所指的镜像站点中,下载相关软件包;第四步,解压软件包,并⾃动完成应⽤程序的安装和配置。
5、升级系统到新版本 
Ubuntu Linux会不断推出新的版本,⽆论是通过Internet,还是使⽤光盘(由ISO镜像⽂件刻录的安装光盘),使⽤“apt-get dist-upgrade”命令可以实现Ubuntu系统从⼀个版本直接升级到另⼀个新版本。例如,从Ubuntu的⼀个发⾏版本 dapper(version 6.10)升级到
feisty(version 7.04)。
这个升级过程包括3步:
●第⼀步,需要修改软件源配置⽂件的各个配置项中的版本标识。类似于将以下配置项。
deb cn.archive.ubuntu/ubuntu/  dapper main restricted
修改为:
deb cn.archive.ubuntu/ubuntu/  feisty  main restricted
●第⼆步,使⽤“apt-get update”命令刷新软件包更新列表。
●第三步,使⽤“apt-get dist-upgrade”命令为系统升级新的版本。
从以下命令的执⾏结果可以看出,“apt-get dist-upgrade”要⽐“apt-get upgrade”要复杂的多,必须要筹划
整个系统的升级过程,其中包括列出所有需要卸载、安装和升级的软件包。这个升级过程中的时间和空间消耗是相当⼤的。
6、⼏个和apt-get相关的⽬录
#⽂件的内容是软件包的描述信息, 该软件包括当前系统所使⽤的 ubunt 安装源中的所有软件包,其中包括当前系统中已安装的和未安装的软件包.
/var/lib/dpkg/available
#⽬录是在⽤ apt-get install安装软件时,软件包的临时存放路径
/var/cache/apt/archives
#存放的是软件源站点
/etc/apt/sources.list
#使⽤apt-get update命令会从/etc/apt/sources.list中下载软件列表,并保存到该⽬录
/var/lib/apt/lists
7、APT⼯作原理
Ubuntu采⽤集中式的软件仓库机制,将各式各样的软件包分门别类地存放在软件仓库中,进⾏有效地组织和管理。然后,将软件仓库置于许许多多的镜像服务器中,并保持基本⼀致。这样,所有的Ubuntu⽤户随时都能获得最新版本的安装软件包。因此,对于⽤户,这些镜像服务器就是他们的软件源(Reposity)。然⽽,由于每位⽤户所处的⽹络环境不同,不可能随意地访问各镜像站点。为了能够有选择地访问,在Ubuntu系统中,使⽤软件源配置⽂件/etc/apt/sources.list列出最合适访问的镜像站点地址。
apt-get的更新过程:
执⾏apt-get update
程序分析/etc/apt/sources.list
⾃动连⽹寻list中对应的Packages/Sources/Release列表⽂件,如果有更新则下载之,存⼊/var/lib/apt/lists/⽬录
apt-get install 相应的包,下载并安装。
即使这样,软件源配置⽂件只是告知Ubuntu系统可以访问的镜像站点地址,但那些镜像站点具体都拥有什么软件资源并不清楚。若每安装⼀个软件包,就在服务器上寻⼀遍,效率是很低的。因⽽,就有必要为这些软件资源列个清单(建⽴索引⽂件),以便本地主机查询。
apt-get install 下载的软件存放到 /var/cache/apt/archives/下。
同时,APT能够检查Ubuntu Linux系统中的软件包依赖关系,⼤⼤简化了Ubuntu⽤户安装和卸载软件包的过程。
可通过浏览器到
apt-get 每次都会读取这个⽂件,从⽽获取的包的信息。从中获取到所有包的信息。中包含的信息有:
包名,优先级,类型,维护者,架构,源⽂件(source),版本号,依赖包,冲突性信息,包⼤⼩,⽂件的下载路径,MD5sum,SHA1,包描述,Xul-Appid—应⽤程序id,Bugs信息,Origin,Supported
Packages中的⼀个包信息实例:
Package: abrowser
Priority: optional
Section: web
Installed-Size: 153
Maintainer: Ubuntu Mozilla Team <ubuntu-mozillateam@lists.ubuntu>
Architecture: amd64
Source: firefox
Version: 11.0+build1-0ubuntu4
Depends: firefox (>= 9.0)
Filename: pool/main/f/firefox/abrowser_11.0+build1-0ubuntu4_amd64.deb
Size: 8940
MD5sum: e8781af38a6de76126d190fc10a14bf2
SHA1: 408abd5f960d4b02bc18581df348954eb7620772
SHA256: cdfad0e4435c035b3115bdec08d79ccfc68bf9480e89df9270b3b6befa348699
Description: Safe and easy web browser from Mozilla – transitional package
Description-md5: e89058e4775caff7d26313fa8811675e
Bugs: bugs.launchpad/ubuntu/+filebug
Origin: Ubuntu
Supported: 18m
从这个信息段中可以看出来,实际的deb包放在pool/main/f/firefox/abrowser_11.0+build1-0ubuntu4_amd64.deb,通过浏览器同样可以到。从中也可以看到Depends⼀项中的依赖需求。
8、常⽤的APT命令参数
  apt-cache search package 搜索包
  apt-cache show package 获取包的相关信息,如说明、⼤⼩、版本等
  sudo apt-get install package 安装包
  sudo apt-get install package - - reinstall 重新安装包
  sudo apt-get -f install 修复安装"-f = ――fix-missing"
  sudo apt-get remove package 删除包
  sudo apt-get remove package - - purge 删除包,包括删除配置⽂件等
  sudo apt-get update 更新源
  sudo apt-get upgrade 更新已安装的包
  sudo apt-get dist-upgrade 升级系统
  sudo apt-get dselect-upgrade 使⽤ dselect 升级
  apt-cache depends package 了解使⽤依赖
  apt-cache rdepends package 是查看该包被哪些包依赖
  sudo apt-get build-dep package 安装相关的编译环境
  apt-get source package 下载该包的源代码
  sudo apt-get clean && sudo apt-get autoclean 清理⽆⽤的包
  sudo apt-get check 检查是否有损坏的依赖
  其中:
  1 有SUDO的表⽰需要管理员特权!linux版本命令
  2 在UBUNTU中命令后⾯参数为短参数是⽤“-”引出,长参数⽤“――”引出
  3 命令帮助信息可⽤man 命令的⽅式查看或者
  命令 -H(――help)⽅式查看
  4 在MAN命令中需要退出命令帮助请按“q”键!!
  选项含义作⽤
  sudo -h Help 列出使⽤⽅法,退出。
  sudo -V Version 显⽰版本信息,并退出。
  sudo -l List 列出当前⽤户可以执⾏的命令。只有在sudoers⾥的⽤户才能使⽤该选项。
  sudo -u username|#uid User 以指定⽤户的⾝份执⾏命令。后⾯的⽤户是除root以外的,可以是⽤户名,也可以是#uid。
  sudo -k Kill 清除“⼊场卷”上的时间,下次再使⽤sudo时要再输⼊密码。
  sudo -K Sure kill 与-k类似,但是它还要撕毁“⼊场卷”,也就是删除时间戳⽂件。
  sudo -b command Background 在后台执⾏指定的命令。
  sudo -p prompt command Prompt 可以更改询问密码的提⽰语,其中%u会代换为使⽤者帐号名称,%h会显⽰主机名称。⾮常⼈性化的设计。
  sudo -e file Edit 不是执⾏命令,⽽是修改⽂件,相当于命令sudoedit。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。