【linux】一篇全面的linux软件包管理的总结
一篇全面的linux软件包的管理总结文章目录一篇全面的linux软件包的管理总结零、开篇一、查看软件包信息(1-1)使用aptitude查看linux系统上安装了哪些软件包。(1-2)使用aptitude常看已知的软件包信息(1-3)查看与具体软件包相关的所有文件二、使用aptitude安装软件包(2-1)搜索软件包(2-2)安装软件包三、使用aptitude更新软件包四、使用aptitude卸载
一篇全面的linux软件包管理的总结
文章目录
零、开篇
在linux操作系统中,关于软件的安装与Windows操作系统上的软件安装以及软件包的管理有很大的不同。在linux中,常常使用apt-get
命令进行软件安装。实际上该命令是linux软件包管理(PMS)的一个工具。在实际工程实践以及软件开发中,推荐使用另一个前端工具:aptitude
来进行软件安装以及软件包的管理。该命令可以避免一些常见的软件安装问题:
1、软件包之间的依赖关系缺失。
2、系统环境不稳定问题。
【注】该篇文章的软件包管理基于Debian的系统。基于Red Hat的发行系统的软件包管理与本文所描述方法不同!
一、查看软件包信息
(1-1)使用aptitude查看linux系统上安装了哪些软件包。
只需在linux终端下键入aptitude
即可,此后将会弹出aptitude的管理图形界面,如下图所示:
然后使用方向键盘在菜单上移动。每一个菜单下又有子菜单,我们可以根据菜单查看:
-
可升级的软件包
-
新的软件包
-
已安装的软件包
-
未安装的软件包
-
过期的和在本地创建的软件包
-
虚拟软件包
-
软件集
而且当移动到对应的菜单栏时,会有对应的提示信息。这一点非常nice!这也是我钟爱
aptitude
的一个重要原因。【常用快捷键】
1、按下键盘上?号键查看关于aptitude的帮助提示。
如果不清楚关于aptitude的命令参数和对应快捷键,可以按下键盘上的?查看,如下图所示:
2、q键是返回或者退出快捷键。
3、使用u键更新软件包。
(1-2)使用aptitude查看已知的软件包信息
在许多开发场景中,当我们已经知道了软件包的名称,那就可以不使用aptitude图形界面查看软件包信息,可以使用以下的命令查看:
aptitude show package_name
package_name是我们已经知道的软件包名称。
注:如果package_name表示的软件包在系统上还没有被安装。那么输出的软件包相关的详细信息来自于软件仓库。
以下是使用aptitude show vim查看vim软件包的信息:
(1-3)查看与具体软件包相关的所有文件
使用aptitude命令无法查看到与一个软件包关联的所有文件,这时候需要使用dpkg
命令,如下所示:
dpkg -L package_name
package_name表示软件包的名称。
以下是使用dpkg -L vim
查看与vim软件包相关联的所有文件:
除了可以查看一个软件包的所有文件,也可以换过来查看一个文件属于哪一个软件包。需要使用以下命令:
dpkg --search 文件的绝对路径
注:必须使用文件的绝对路径。
二、使用aptitude安装软件包
(2-1)搜索软件包
很多时候,在安装软件包时,往往不知道软件包的全名是什么,非常尴尬。除非有文档进行详细描述。这时候在安装软件包之前,需要使用:
aptitude search package_name
来获取软件包的名称。
例如如果需要安装FFmpeg软件包,这时候可以使用如下命令:
aptitude search ffmpeg
软件包搜索结果如下所示:
可以看见将会输出很多的软件包,我们可以根据自己的需要进行安装。在每一个软件包条目的前面都有一个软件包状态说明符。如果显示为i,则说明该软件包已经被安装到本地系统环境中了。如果显示为p或者v,则说明该软件包可用,但是还没有安装到本地系统环境中。
(2-2)安装软件包
安装软件包就比较简单啦,如果我们已经使用aptitude search package_name
命令找到了所需要安装的软件包,这时候使用aptitude install package_name
安装软件即可:
sudo aptitude install ffmpeg
三、使用aptitude更新软件包
linux环境中,对于解决软件包的依赖关系问题比较繁琐。这时候可以使用aptitude safe-upgrade
命令将系统中的软件包更新到软件仓库下的最新版本。
aptitude safe-upgrade
命令将会自动检查软件包之间的依赖关系。
当然,还可以使用aptitude full-upgrade
和aptitude dist-upgrade
命令更新软件包。但是这两个命令不会去检查软件包之间的依赖关系,所以说在实际工作中推荐使用aptitude safe-upgrade
命令来更新软件包。
【备注】
对于一个linux的发新版本,当该版本发布以后,后面可能会推出安全补丁和相关更新,这时候及时更新我们的系统很重要,为什么这样做,你们都懂的!
四、使用aptitude卸载软件
在实际工作中,当由于各种原因不再需要某个软件的时候,需要将其卸载掉。同样的,使用aptitude remove package_name
或aptitude purge package_name
命令。
- aptitude remove package_name:该命令将删除软件包而不删除数据和配置文件。
- aptitude purge package_name:该命令将删除软件包和相关数据和配置文件。
五、aptitude仓库
对于linux来说,其软件生态管理得非常好,会有专门的机构或者规则对软件包进行管理。如果我们需要更换自己系统上的aptitude的软件仓库,只需要编辑、修改/etc/apt/sources.list
文件即可。
该文件中的内容形式通常如下:
deb (或者deb-src) address distribution_name package_type_list
-
deb或者deb-src:软件包的类型。
deb
标识是一个已经编译的程序源;deb-src
标识是一个源代码的源。 -
address:软件仓库的web地址。
-
distribution_name:软件仓库的发布版版本的名称。【注:该名称可能会与多种linux发行版混用!】
-
package_type_list:仓库中存在的包的类型。该条目可能不止一个选择,可选的值有:main、restricted、universe、partner等。
例如:
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted
# deb-src http://security.ubuntu.com/ubuntu bionic-security main restricted
deb http://mirrors.aliyun.com/ubuntu/ bionic-security universe
# deb-src http://security.ubuntu.com/ubuntu bionic-security universe
deb http://mirrors.aliyun.com/ubuntu/ bionic-security multiverse
# deb-src http://security.ubuntu.com/ubuntu bionic-security multiverse
好啦,至此Linux平台下的软件包管理与安装总结一文到此结束。感叹一下,成千上万的软件包在Linux平台下都井井有序的被管理着。当然还有些没有进入Linux管理仓库的软件。可见,Linux平台软件包管理机制和规则的强大。
搜索关注【嵌入式小生】wx公众号获取更多精彩内容>>>>
更多推荐
所有评论(0)