Linux-软件包安装
背景
全文针对Linux系统下软件包的更新、安装、升级做简要叙述。本文环境是Ubuntu 20.10,它基于dpkg
,如果使用的是CentOS
,则不适用。
内容
在Linux系统中,当我们想要查看某一个软件的相关信息,则可以通过apt
命令:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| apt show [包名]
# 执行后,可获得如下结果: Package: vim Version: 2:8.1.2269-1ubuntu5 Priority: optional Section: editors Origin: Ubuntu Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> Original-Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org> Bugs: https://bugs.launchpad.net/ubuntu/+filebug Installed-Size: 3,111 kB Provides: editor Depends: vim-common (= 2:8.1.2269-1ubuntu5), vim-runtime (= 2:8.1.2269-1ubuntu5), libacl1 (>= 2.2.23), libc6 (>= 2.29), libcanberra0 (>= 0.2), libgpm2 (>= 1.20.7), libpython3.8 (>= 3.8.2), libselinux1 (>= 1.32), libtinfo6 (>= 6) Suggests: ctags, vim-doc, vim-scripts Homepage: https://www.vim.org/ Task: server, cloud-image, lubuntu-desktop Download-Size: 1,238 kB APT-Manual-Installed: yes APT-Sources: http://mirrors.tencentyun.com/ubuntu focal/main amd64 Packages Description: Vi IMproved - enhanced vi editor Vim is an almost compatible version of the UNIX editor Vi...
|
如果需要查看与该软件相关的文件/目录,则可以使用dpkg
:
1 2
| # -L:查询与软件相关的目录 dpkg -L [包名]
|
同理,也可以通过dpkg
查询到与指定目录相关的软件
1 2
| # --search:查询与路径相关的软件 dpkg --search [路径]
|
而如果我们想要安装某一类软件,但是不知道具体的名称,则可以通过apt
搜索一下
安装软件的话:
1 2
| # 直接安装,则会安装最新的包 apt install [包]
|
如果对系统的所有软件进行升级,则:
1 2 3 4 5 6 7 8 9 10 11
| # 对比仓库更新源信息 apt update
# 升级软件,这个方法在遇到环境被多方依赖产生冲突,或是新软件与现有软件存在冲突的时候,就会拒绝升级,安全 apt upgrade
# 升级软件,并且在升级软件的时候可根据需要直接删除已安装的软件包,慎用! apt full-upgrade
# 升级软件,当遇到环境依赖发生变化时,upgrade会拒绝升级,而dist-upgrade会安装新的环境,并且升级 apt dist-upgrade
|
如果需要卸载软件,则:
1 2 3 4 5
| # 仅仅只删除软件,但是保留相关的配置文件和数据信息 apt remove [软件名]
# 彻底删除软件及其相关的配置文件和数据 apt purge [软件名]
|
如果查看已经安装的包
通过apt
安装的软件都是从linux仓库下载的,这个仓库对应的配置文件是:/etc/apt/sources.list
,如果需要添加新的仓库连接,则直接编辑该软件进行添加即可,此处解释一下该文件内容:
1 2 3 4 5 6
| # 遇到的格式也就这两种 deb http://mirrors.tencentyun.com/ubuntu/ focal main restricted universe multiverse deb-src http://mirrors.tencentyun.com/ubuntu/ focal-security main restricted universe multiverse
# deb开头的表示这是已编译程序的源 # deb-src开头的表示这是源代码的源
|
上面的方式是通过仓库进行安装的,都是别人弄好的,而有的软件仓库并没有,比如一些开源的,对于这类软件,则需要我们通过源码安装。以nginx为例
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| # 拉取源码 git clone [nginx连接]
# 检查环境,查看环境是否支持 ./configure
# 编译,将源码编译为程序 make
# 检查编译后的程序是否可以在当前系统环境下运行 make test
# 将程序安装到本机 make install
|