在 Ubuntu 18.04 上安装软件

本文讲述如何在 Ubuntu 18.04 上安装软件的几种姿势~

类比

Linux 系统优先安装软件的方式不像 Windows 那样到某个网站下载软件安装包,然后双击安装…

Linux 系统优先安装软件的方式像 Android 手机和 IOS 手机那样从应用商店安装软件…
因为在应用商店上软件一般都是官方发布的,而且经过应用商店检测过的。

dpkg

在 Linux 发展之初,安装软件的时候是需要下载以 tar.gz 结尾的软件源码包,然后对源码包进行编译安装。这极其麻烦~

后来 Debian(Ubuntu 是基于 Debian 系统的) 开发了 dpkg(Debian Package) 管理工具来管理软件,
软件都是以 deb 结尾的编译好的二进制包,通过 dpkg 命令可以安装软件和卸载软件~

apt

apt(Advanced Packaging Tool)

然而 dpkg 不够人性化的一点就是不能自动解决依赖问题,比如 A软件包 依赖于 B软件包,那么你先得安装 B 才能安装 A,
而且使用 dpkg 需要将软件下载到本地才能安装。

使用 apt 安装软件时会自动从软件源下载软件进行安装,
并且 apt 能自动解决依赖问题,当有依赖的时候它也会自动从软件源下载依赖的包进行安装。
当然 apt 底层还是调用 dpkg 来进行软件安装的。

软件源

软件源(软件仓库)中存放这大量的软件包,apt 会从软件源中下载软件。
/ect/apt/sources.list 中可以为 apt 配置软件源。
可以在 /ect/apt/sources.list 中配置多个软件源,就如同安卓手机可以安装多个应用商店。

/ect/apt/sources.list 中 deb 关键字定义已编译的软件包来源。

每个数据源后面都有一些标签

  • main:软件包是自由软件,Ubuntu 提供及时性,安全性支持。
  • restricted:不是完全的自由软件,但是由于被广泛使用,所以 Ubuntu 也提供及时性,安全性支持。
  • universe:一般由社区维护的软件,但 Ubuntu 不提供安全性的支持。
  • multiverse:非自由软件,不被 Ubuntu 认可,不建议使用。

官方文档

apt-get 命令

Linux tree 命令用于以树状图列出目录的内容。

执行 tree 指令,它会列出指定目录下的所有文件,包括子目录里的文件。

1
2
3
4
5
6
7
8
wxb@ubuntu18s:~$ tree

Command 'tree' not found, but can be installed with:

sudo snap install tree # version 1.8.0+pkg-3fd6, or
sudo apt install tree

See 'snap info tree' for additional versions.

提示我们 tree 命令没有找到,但可以使用
sudo snap install tree 安装 1.8.0 的版本,或者
sudo apt install tree

snap 是一种全新的软件包管理方式,它类似一个容器拥有一个应用程序所有的文件和库,各个应用程序之间完全独立。
所以使用 snap 包的好处就是它解决了应用程序之间的依赖问题,使应用程序之间更容易管理,但是由此带来的问题就是它占用更多的磁盘空间。

那么使用 apt 安装,安装的 tree 会是什么版本呢?
我们可以使用 apt show tree

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
wxb@ubuntu18s:~$ apt show tree
Package: tree
Version: 1.7.0-5
Priority: optional
Section: universe/utils
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Florian Ernst <florian@debian.org>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 105 kB
Depends: libc6 (>= 2.14)
Homepage: http://mama.indstate.edu/users/ice/tree/
Task: lubuntu-qt-desktop
Supported: 9m
Download-Size: 40.7 kB
APT-Sources: http://mirrors.aliyun.com/ubuntu bionic/universe amd64 Packages
Description: displays an indented directory tree, in color
Tree is a recursive directory listing command that produces a depth indented
listing of files, which is colorized ala dircolors if the LS_COLORS environment
variable is set and output is to tty.

当然查询到的是 Ubuntu 存储库中软件包列表的私有副本,因为是私有副本,所以有可能是安装到旧的版本,或者没有该软件的信息。

因此在安装软件强烈推荐使用 sudo apt-get update 更新包列表。

运行 sudo apt-get update 更新软件列表,
再运行 sudo apt install tree 安装 tree 那么就可以愉快地使用 tree 命令了。

那么如何删除(卸载)软件呢?
sudo apt-get remove packagename 命令,卸载一个已安装的软件包(保留配置文件)
apt-get –purge remove packagename 命令,卸载一个已安装的软件包(删除配置文件)

接下来我们来看看 Docker 官方 Ubuntu 安装文档 中是怎么安装 docker 的。

  1. 更新 apt 软件包信息库
1
sudo apt-get update
  1. 安装软件包允许使用 HTTPS :
1
2
3
4
5
6
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common

上面的命令安装了好几个工具:

apt-transport-https:如果是软件源是 https 来传输的,那么系统这边也要支持 https
ca-certificates:管理 CA 证书
curl: 该命令是一个利用URL规则在命令行下工作的文件传输工具
gnupg-agent:??
software-properties-common:??

  1. 添加 Docker 的官方 GPG key
1
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

每个发布的 deb 包,都是通过密钥认证的,为了确保我们安装的包是官方没有被篡改的包,所以我们需要将 docker 这个包的 GPG key 添加到我们的系统中。

sudo apt-key add 命令是把 key 添加到本地 trusted 数据库中。

运算符 | 是一个管道,它将之前命令的输出作为命令的 STDIN 传递给它。

将 Docker 的官方 GPG key 添加到本地 trusted 数据库后,还要查看我们添加的 GPG key 是否正确。
Docker 的官方 GPG key 是 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
运行命令 sudo apt-key fingerprint 0EBFCD88

1
2
3
4
5
wxb@ubuntu18s:~$ sudo apt-key fingerprint 0EBFCD88
pub rsa4096 2017-02-22 [SCEA]
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid [ unknown] Docker Release (CE deb) <docker@docker.com>
sub rsa4096 2017-02-22 [S]

  1. 将 docker 的官方下载地址添加到软件源中
1
2
3
4
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
  1. 再次更新 apt 软件包信息库
1
sudo apt-get update

第一次更新是为了安装支持 https,这次是为了安装 docker

  1. 安装 docker
1
sudo apt-get install docker-ce docker-ce-cli containerd.io

删除软件

找出已经安装的软件

dpkg –get-selections

dpkg –get-selections | grep xxx

sudo apt-get remove –purge 软件名称
sudo apt-get autoremove –purge 软件名称 12

列出所有服务

http://manpages.ubuntu.com/manpages/bionic/en/man8/service.8.html

service –status-all

The status is
[ + ] for running services,
[ - ]  for stopped services and
[ ? ]  for services without a status command.

觉得文章对您有帮助,请我喝瓶肥宅快乐水可好 (๑•̀ㅂ•́)و✧
  • 本文作者: 阿彬~
  • 本文链接: https://iweixubin.github.io/posts/ubuntu-install-software/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 免责声明:本媒体部分图片,版权归原作者所有。因条件限制,无法找到来源和作者未进行标注。
         如果侵犯到您的权益,请与我联系删除