ubuntu常见的软件安装方式
ubuntu 一些安装命令的区分, 比如 apt-get、apt、snap、dpkg 等。
1. apt vs apt-get
最常用的 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 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系统基本上分两大类:
- RedHat系列:Redhat、CentOS、Fedora等
- Debian系列:Debian、Ubuntu等
RedHat 系列
- 常见的安装包格式 rpm包,安装rpm包的命令是“rpm -参数”
- 包管理工具 yum
- 支持tar包
Debian系列
- 常见的安装包格式 deb包,安装deb包的命令是“dpkg -参数”
- 包管理工具 apt-get
- 支持tar包
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!