ubuntu常见的软件安装方式

ubuntu 一些安装命令的区分, 比如 apt-get、apt、snap、dpkg 等。

1. apt vs apt-get

  最常用的 Linux 包管理命令分散在 apt-getapt-cacheapt-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 install apt-get install 安装软件包
apt remove apt-get remove 移除软件包
apt purge apt-get purge 移除软件包及配置文件
apt update apt-get update 刷新存储库索引
apt upgrade apt-get upgrade 升级所有可升级的软件包
apt autoremove apt-get autoremove 自动删除不需要的包
apt full-upgrade apt-get dist-upgrade 在升级软件包时自动处理依赖关系
apt search apt-cache search 搜索应用程序
apt show apt-cache show 显示安装细节

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

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

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

apt-get已弃用?

​ 目前还没有任何 Linux 发行版官方放出 apt-get 将被停用的消息,至少它还有比 apt 更多、更细化的操作功能。对于低级操作,仍然需要 apt-get。

我应该使用apt还是apt-get?

​ 既然两个命令都有用,那么我该使用 apt 还是 apt-get 呢?作为一个常规 Linux 用户,建议大家尽快适应并开始首先使用 apt。不仅因为广大 Linux 发行商都在推荐 apt,更主要的还是它提供了 Linux 包管理的必要选项。

​ 最重要的是,apt 命令选项更少更易记,因此也更易用,所以没理由继续坚持 apt-get。

dpkg

dpkg是用来安装.deb文件,但不会解决模块的依赖关系,且不会关心ubuntu的软件仓库内的软件,可以用于安装本地的deb文件。

小结

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

  • apt 可以看作 apt-get 和 apt-cache 命令的子集, 可以为包管理提供必要的命令选项。
  • apt-get 虽然没被弃用,但作为普通用户,还是应该首先使用 apt。

以上原文链接:https://www.sysgeek.cn/apt-vs-apt-get/

2. apt 基本命令

sudo apt install [xxx.deb] # 安装
sudo apt --fix-broken install  # 修复依赖

# apt update vs upgrade
sudo apt update  # 只检查,不更新(已安装的软件包是否有可用的更新,给出汇总报告)
sudo apt upgrade #  更新已安装的软件包


sudo apt remove     # 删除已安装的软件包(保留配置文件)
sudo apt purge      # 删除已安装包(不保留配置文件),删除软件包,同时删除相应依赖软件包。 
                        # 如果想要彻底清理软件, 建议使用 purge 命令
sudo apt clean    # 此命令会将 /var/cache/apt/archives/ 下的 所有 deb 删掉,
                 # 相当于清理下载的软件安装包。
sudo apt autoremove   # 删除已安装的软件包(保留配置文件),不会删除依赖软件包,且保留配置文件。(这个命令容易导致系统无法进入系统桌面, 在桌面版的Ubuntu系统下尽量不要使用

3. 常见的软件编译安装方法

# download
$ git clone [github/path/to/packge]

#
$ cd [package]
$ mkdir build
$ cd build

# build & install
$ cmake ..
$ make 
$ sudo make install

4. snap

  Snap是Ubuntu母公司Canonical于2016年4月发布 Ubuntu16.04 时候引入的一种安全的、易于管理的、沙盒化的软件包格式,与传统的dpkg/apt有着很大的区别。Snap可以让开发者将他们的软件更新包随时发布给用户,而不必等待发行版的更新周期; 其次Snap应用可以同时安装多个版本的软件,比如安装Python2.7和Python3.3。 snap软件包一般安装在/snap目录下。

$ sudo snap install [snap_name] # 安装snap包
$ sudo snap find [snap_name] # 搜索安装的snap包
$ sudo snap refresh [snap_name] # 更新snap包
$ sudo snap remove [snap_name] # 删除 snap 包
$ snap list # 列出已经安装的snap包

5. Python packgae 安装方式

pip/pip3

比较常见的安装python package 的方法

conda

​ conda的包管理比较好理解了,这部分功能与pip类似。例如,如果需要安装scipy, 可以使用:conda install scipy。conda会从从远程搜索scipy的相关信息和依赖项目。例如,scipy 依赖于numpy,一次如果你只安装 scipy,则conda还会安装 numpy。你还可以同时安装多个包。类似 conda install numpy scipy pandas 的命令会同时安装所有这些包。另外还可以通过添加版本号(例如 conda install numpy=1.10)来指定所需的包版本。

​ Conda的大部分命令都很直观,要卸载安装包,可以使用 conda remove package_name。要更新安装包,可以使用 conda update package_name, 要更新环境中所有包,可以使用 conda update -all。要查看已经安装的包,可以使用 conda list, 最新版的conda是从site-packages文件夹中搜索已经安装的包,不依赖于pip,因此可以显示出通过各种方式安装的包。 最后,如果我们不知道要找的包的确切名称,可以尝试使用conda search search_term 尝试进行搜索。例如,要安装 Beatiful Soup,但是我们不清楚确切的包名称,因此可以尝试conda search beatifulsoup

apt-get install Python package

(1) 安装python2 package

sudo apt-get install python-[package]

(2) 安装python3 package

sudo apt-get install python3-[package]

6. apt-get 和 yum 区别

一般来说著名的linux系统基本上分两大类:

  1. RedHat系列:Redhat、CentOS、Fedora等
  2. Debian系列:Debian、Ubuntu等
RedHat 系列
  1. 常见的安装包格式 rpm包,安装rpm包的命令是“rpm -参数”
  2. 包管理工具 yum
  3. 支持tar包
Debian系列
  1. 常见的安装包格式 deb包,安装deb包的命令是“dpkg -参数”
  2. 包管理工具 apt-get
  3. 支持tar包

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!