红联Linux门户
Linux帮助

Linux下的apt-get命令学习笔记

发布时间:2015-08-19 10:24:08来源:oscwu.com作者:Osc Wu

因为 apt-get 命令几乎天天与我打交道,而有时候我也会因为不了解 Linux 软件包管理的相关知识而装不上软件,比如遇到依赖库缺失的问题,因此这次我准备好好学习一下这个命令。

正如我在写这篇文章前所发的那一条微博所描述的那样 —— Linux 的主要使用者是开发人员、科学家和工程师们而不是大多数的老百姓,而之所以 Linux 会如此不招普罗大众所待见的原因恐怕是其不友好的命令行操作方式吧。换句话说,使用 Linux 意味着要与各种命令行的指令打交道,而安装软件和管理软件包的 apt-get 命令则是我们使用 Linux 时要用到的最最基本的命令之一。


Linux下的apt-get命令学习笔记

Linux、Mac、Windows 的用户群体


Windows 下的软件包管理

Linux下的apt-get命令学习笔记

Windows 安装程序示例

Windows Installer 是 Windows 平台下的软件包管理系统,它的特点是引导式,要求使用者一步一步往下进行,同时还具有回滚的功能。由于 Windows 本身的特点,其软件的安装包几乎都是二进制文件,并被组织成了可被 Windows Installer 识别的格式。

同时这也是我对安装软件的最初印象,这样的引导式安装程序(Setup Wizard)明显是更加用户友好的,而且取消按钮可以随时放弃对系统的所有更改。


Linux 下的软件包管理

Linux 是一个开放源代码的操作系统,为 Linux 编写的应用程序也大都是开放源代码的,这样的情况导致了 Linux 下软件的安装、卸载、更新的管理方式和 Windows 下有很大区别。Linux 也有自己的软件包管理系统(工具),不同的发行版使用不同的管理工具。

在 GNU/Linux(以下简称 Linux)操作系统中,rpm 和 dpkg 为最常见的两类软件包管理工具,他们分别应用于基于 rpm 软件包的 Linux 发行版本和 deb 软件包的 Linux 发行版本。软件包管理工具的作用是提供在操作系统中安装,升级,卸载需要的软件的方法,并提供对系统中所有软件状态信息的查询。

rpm 全称为 Redhat Package Manager,最早由 RedHat 公司制定实施,随后被 GNU 开源操作系统接受并成为很多 Linux 系统(RHEL)的既定软件标准。deb 是基于 Debian 操作系统(Ubuntu)的 deb 软件包管理工具 —— dpkg,全称为 Debian Package。

IBM developerWorks:http://www.ibm.com/developerworks/cn/linux/l-cn-rpmdpkg/

yum 和 apt 实际上是比上面两种工具更好的解决方案。yum 基于 rpm 管理工具,但是能自动处理依赖性关系并下载、安装每一个依赖包。而 apt 则是于 apt-get 命令有密切关系的。


四类软件包管理工具常用命令表

Linux下的apt-get命令学习笔记


Linux 下的源码安装

除此之外,Linux 还能通过下载软件包公开的源代码文件解压后编译安装。通常在软件的网站上可以寻找到源代码。使用源码安装的好处就是可以根据使用者的需要定制软件的功能,同时缺点是一般编译安装的时间会非常的长。

Linux下的apt-get命令学习笔记

Apache 源码的下载页面

源码安装需要源代码软件包,它们通常是以“.tar.gz”、“tar.Z”、“tar.bz2”、“.tgz”结尾的文件。

在 GNU/Linux 或 BSD 社区中,开发人员在放出软件的二进制软件包的同时,也会为我们提供源代码软件包;

中国 IT 实验室 – Linux 频道:http://itlab.idcquan.com/linux/set/39862.html

这是一篇使用源码安装配置 MySQL 5.6 的教程(CentOS 6.4 下编译安装 MySQL 5.6.14:http://www.cnblogs.com/xiongpq/p/3384681.html)


apt-get 的用法

apt-get 是 Debian GNU/Linux 下的一个命令,用于初始化 Debian 的本地软件包管理工具 “apt”。而 apt (Advanced Package Tool) 则是一个软件包管理系统,实际上目前也不是 Debian 所特有。

Linux Questions Wiki:http://wiki.linuxquestions.org/wiki/Apt-get

实际上,之前解释过了, apt-get 本质上是 apt 管理工具的一个前端工具,它的使用指南如下:

(由于一般安装软件都需要 root 权限,所以在命令行下该命令前面会跟一个 sudo。)

Usage: apt-get [options] command
apt-get [options] install|remove pkg1 [pkg2 ...]
apt-get [options] source pkg1 [pkg2 ...]


command 指令

update
更新软件源索引,获取最新的软件包列表。
upgrade
升级系统内所有软件包。
install
安装一个软件包。
remove
移除一个软件包。
autoremove
自动移除未安装的软件包。
dist-upgrade
升级系统内所有软件包和操作系统本身。


常见用法

安装一个名未 SamplePackage 的软件包:

$ apt-get install SamplePackage

重新安装名为 ReinstalledSamplePackage 的软件包:

$ apt-get install --reinstall ReinstalledSamplePackage

移除一个名为 PackageToBeRemoved 的软件包:

$ apt-get remove PackageToBeRemoved

在上一条的基础上同时移除改软件包的配置文件:

$ apt-get --purge remove PackageToBeRemoved

更新软件源:

$ apt-get update

升级系统内的所有软件:

$ apt-get upgrade

升级你的 Linux 发行版

$ apt-get dist-upgrade

这条命令是一个彩蛋,我也是在查找资料的过程中偶然知道的(它的运行效果我会写在文章末尾):

$ apt-get moo


Ubuntu14.04 apt-fast加速apt-get:http://www.linuxdiyf.com/linux/13278.html

使用apt-fast代替apt-get大幅度提升下载速度:http://www.linuxdiyf.com/linux/9905.html

apt-fast-用axel让apt-get多线程加速软件安装:http://www.linuxdiyf.com/linux/8481.html

Ubuntu的apt加速工具:apt-fast:http://www.linuxdiyf.com/linux/7474.html

Ubuntu 15.04下apt-get安装JDK:http://www.linuxdiyf.com/linux/11669.html