但行好事
莫论前程❤

Linux命令—-apt、apt-get 与 apt-key 命令的区别

sudo apt-get update  #更新依赖
sudo apt-get -f install #修复受损依赖
sudo apt-get install g++  #重新安装g++

apt-get软件包管理命令 和 apt-key命令

apt-get命令是Debian Linux发行版中的APT软件包管理工具。所有基于Debian的发行都使用这个包管理系统。deb包可以把一个应用的文件包在一起,大体就如同Windows上的安装文件。
Advanced Packaging Tool(apt)是Linux下的一款安装包管理工具。最初只有.tar.gz的打包文件,用户必须编译每个他想在GNU/Linux上运行的软件。用户们普遍认为系统很有必要提供一种方法来管理这些安装在机器上的软件包,当Debian诞生时,这样一个管理工具也就应运而生,它被命名为dpkg。从而著名的“package”概念第一次出现在GNU/Linux系统中,稍后Red Hat才决定开发自己的“rpm”包管理系统。很快一个新的问题难倒了GNU/Linux制作者,他们需要一个快速、实用、高效的方法来安装软件包,当软件包更新时,这个工具应该能自动管理关联文件和维护已有配置文件。Debian再次率先解决了这个问题,APT(Advanced Packaging Tool)作为dpkg的前端诞生了。APT后来还被Conectiva改造用来管理rpm,并被其它Linux发行版本采用为它们的软件包管理工具。APT由几个名字以“apt-”打头的程序组成。apt-getapt-cacheapt-cdrom是处理软件包的命令行工具。作为操作的一部分,APT使用一个文件列出可获得软件包的镜像站点地址,这个文件就是/etc/apt/sources.list

APT是一个客户/服务器系统。在服务器上先复制所有DEB包(DEB是Debian软件包格式的文件扩展名),然后用APT的分析工具(genbasedir)根据每个DEB 包的包头(Header)信息对所有的DEB包进行分析,并将该分析结果记录在一个文件中,这个文件称为DEB 索引清单,APT服务器的DEB索引清单置于base文件夹内。一旦APT 服务器内的DEB有所变动,一定要使用genbasedir产生新的DEB索引清单。客户端在进行安装或升级时先要查询DEB索引清单,从而可以获知所有具有依赖关系的软件包,并一同下载到客户端以便安装。当客户端需要安装、升级或删除某个软件包时,客户端计算机取得DEB索引清单压缩文件后,会将其解压置放于/var/state/apt/lists/,而客户端使用apt-get installapt-get upgrade命令的时候,就会将这个文件夹内的数据和客户端计算机内的DEB数据库比对,知道哪些DEB已安装、未安装或是可以升级的。

使用apt-get命令的第一步就是引入必需的软件库,Debian的软件库也就是所有Debian软件包的集合,它们存在互联网上的一些公共站点上。把它们的地址加入,apt-get就能搜索到我们想要的软件。/etc/apt/sources.list是存放这些地址列表的配置文件,其格式如下:

deb [web或ftp地址] [发行版名字] [main/contrib/non-free]

配置更新源方法

vi /etc/apt/sources.list
#官方源
deb http://http.kali.org/kali kali-rolling main non-free contrib
deb-src http://http.kali.org/kali kali-rolling main non-free contrib
#中科大源
deb https://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
deb-src https://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib

我们常用的Ubuntu就是一个基于Debian的发行,我们使用apt-get命令获取这个列表,以下是我整理的常用命令:
在修改/etc/apt/sources.list或者/etc/apt/preferences之后运行该命令。此外您需要定期运行这一命令以确保您的软件包列表是最新的:

apt-get update    # 更新软件列表信息(注意只是更新列表,并未更新程序,后接apt-get upgrade)
apt-get upgrade   # 更新程序
# 搜索程序包
apt-cache search packagename

#获取包的相关信息,如说明、大小、版本等
apt-cache show package

#安装一个新软件包:
sudo apt-get install packagename

#重新安装包
sudo apt-get install package --reinstall

#修复安装(重新配置一下依赖) 安装失败后卸掉,修复,再安装
sudo apt-get -f install

#卸载一个已安装的软件包(保留配置文件):
sudo apt-get remove packagename

#卸载一个已安装的软件包(删除配置文件): purge 清除
apt-get –purge remove packagename


#已装或已卸的软件都备份在硬盘上,所以如果需要空间的话,可以让这个命令来删除你已经删掉的软件:
apt-get autoclean apt

#这个命令会把安装的软件的备份也删除,不过这样不会影响软件的使用的:
apt-get clean

#卸载所有自动安装且不再使用的软件包
apt-get autoremove  

#更新所有已安装的软件包:
apt-get upgrade

#升级到新版本:
apt-get dist-upgrade

#了解使用该包依赖哪些包
apt-cache depends package

#查看该包被哪些包依赖
apt-cache rdepends package 

# 安装相关的编译环境
sudo apt-get build-dep package 

#下载该包的源代码
apt-get source package  

#检查是否有损坏的依赖
sudo apt-get check 

定期运行这个命令来清除那些已经卸载的软件包的.deb文件。通过这种方式,您可以释放大量的磁盘空间。如果您的需求十分迫切,可以使用apt-get clean以释放更多空间。这个命令会将已安装软件包裹的.deb文件一并删除。大多数情况下您不会再用到这些.debs文件,因此如果您为磁盘空间不足而感到焦头烂额,这个办法也许值得一试:
apt-get autoclean
**下载的软件存放位置: /var/cache/apt/archives **

apt-key

apt-key命令用于管理Debian Linux系统中的软件包密钥。每个发布的deb包,都是通过密钥认证的,apt-key用来管理密钥。

apt-key list                     #列出已保存在系统中key。
apt-key add keyname   #把下载的key添加到本地trusted数据库中。
apt-key del keyname    #从本地trusted数据库删除key。
apt-key update             #更新本地trusted数据库,删除过期没用的key。

apt与apt-get

​ Ubuntu 16.04 发布时,一个引人注目的新特性便是apt命令的引入。其实早在 2014 年,apt 命令就已经发布了第一个稳定版,只是直到 2016 年的 Ubuntu 16.04 系统发布时才开始引人关注。

​ 随着 apt install package 命令的使用频率和普遍性逐步超过 apt-get install package,越来越多的其它 Linux 发行版也开始遵循 Ubuntu 的脚步,开始鼓励用户使用 apt 而不是 apt-get

​ 你可能已经遇到过许多类似的命令,如apt-cacheapt-config 等。如你所见,这些命令都比较低级又包含众多功能,普通的 Linux 用户也许永远都不会使用到。换种说法来说,就是最常用的 Linux 包管理命令都被分散在了 apt-get、apt-cache 和 apt-config 这三条命令当中。

apt 命令的引入就是为了解决命令过于分散的问题它包括了 apt-get 命令出现以来使用最广泛的功能选项,以及 apt-cache 和 apt-config 命令中很少用到的功能。

​ 在使用 apt 命令时,用户不必再由 apt-get 转到 apt-cache 或 apt-config,而且 apt 更加结构化,并为用户提供了管理软件包所需的必要选项。

简单来说就是:apt = apt-get、apt-cache 和 apt-config 中最常用命令选项的集合。

apt与apt-get之间的区别

​ 通过 apt 命令,用户可以在同一地方集中得到所有必要的工具,apt 的主要目的是提供一种以「让终端用户满意」的方式来处理 Linux 软件包的有效方式。

​ apt 具有更精减但足够的命令选项,而且参数选项的组织方式更为有效。除此之外,它默认启用的几个特性对最终用户也非常有帮助。例如,可以在使用 apt 命令安装或删除程序时看到进度条。

​ apt 还会在更新存储库数据库时提示用户可升级的软件包个数。

​ 如果你使用 apt 的其它命令选项,也可以实现与使用 apt-get 时相同的操作。

apt和apt-get命令之间的区别

​ 虽然 apt 与 apt-get 有一些类似的命令选项,但它并不能完全向下兼容 apt-get 命令。也就是说,可以用 apt 替换部分 apt-get 系列命令,但不是全部。

apt 命令取代的命令命令的功能
apt installapt-get install安装软件包
apt removeapt-get remove移除软件包
apt purgeapt-get purge移除软件包及配置文件
apt updateapt-get update刷新存储库索引
apt upgradeapt-get upgrade升级所有可升级的软件包
apt autoremoveapt-get autoremove自动删除不需要的包
apt full-upgradeapt-get dist-upgrade在升级软件包时自动处理依赖关系
apt searchapt-cache search搜索应用程序
apt showapt-cache show显示装细节

当然,apt 还有一些自己的命令:

新的apt命令命令的功能
apt list列出包含条件的包(已安装,可升级等)
apt edit-sources编辑源列表

需要大家注意的是:apt 命令也还在不断发展, 因此,你可能会在将来的版本中看到新的选项。

小结

最后给大家提供两点使用上的建议:

  • apt 可以看作 apt-get 和 apt-cache 命令的子集, 可以为包管理提供必要的命令选项。
  • apt-get 虽然没被弃用,但作为普通用户,还是应该首先使用 apt。
赞(0) 打赏
未经允许不得转载:刘鹏博客 » Linux命令—-apt、apt-get 与 apt-key 命令的区别
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏