查看: 2003|回复: 1

ubuntu下安装包依赖关系(问题)& apt包管理工具

[复制链接]

665

主题

1234

帖子

6685

积分

xdtech

Rank: 5Rank: 5

积分
6685
发表于 2020-4-27 16:40:14 | 显示全部楼层 |阅读模式

一.linux下安装包,为什么会显示需要安装有依赖关系的包

            1.我们清楚的知道,linux是的包是开源的,所以这些包的编辑者大多是一些程序员大神。

            2.所谓的包实际上就是执行某种功能的代码。

            3.一个要完成复杂功能的代码,肯定包含许许多多小功能的代码。

            4.恰好之前有人写过完成你的复杂功能里面需要的小功能的代码。那你是用还是不用?程序员是一定会用的。

            5.所以这些被依赖的包就是你这个包里需要用到,但是未写入,就像是程序员在这告诉你,去,去调用某个包。

       二.APT包管理工具

            1.在这里我们要先引入一个概念,即apt包管理工具。什么是APT包管理工具?

               1.1.ubuntu上用与Debian一样的Deb软件包来管理软件,而apt-get是ubuntu的Deb软件包管理工具。即我们所谓的APT包管理工具。

            2.那么问题来了,这个APT包管理工具是干嘛用的?

               2.1.apt-get会从ubuntu的软件源库里调用安装你需要安装的包,而且,系统可以自动分析和解决依赖关系,并且将所依赖的软件都搞定。这个东西是不是很牛逼!按理说这样的话所有的问题不都解决了吗?原理是这样子的,可是坑爹的是,系统软件源库本身的源里面的包不太多,特别是针对于我们这些搞生信的人所需的包。

               2.2.那么我们在系统的软件源库里面加几个丰富的源不就行了。本站的paincupid大神,在他的文章[Ubuntu16.04几个国内更新源]中提到了加源的方法和一些源。http://blog.csdn.net/paincupid/article/details/52895676

       其实  ,写到这里,我们已经解释了为什么可以利用#sudo apt-get install为什么可以直接安装,而不许要下载,因为相关信息都是由APT包管理工具从系统的软件源库里面调用的,包括包的依赖性什么的,他都捎带手解决了。但是需要注意的是,这样的安装方法,一般会先敲个#sudo apt-get update,让系统更新一下库里面的软件资源。

                   3.#sudo dpkg -i 文件.deb与 #sudo gdebi 文件.deb

               3.1 我们在上面提到了用#sudo apt-get install来从库里面调用资源,但很还是有点漏洞的,万一你的源里面都没有,你也不能不下啊,所以,你就只能手动下载下来,然后手动安装。这时候在敲下这两个命令。就能安装了。这一种方法采用本地已经下载好的软件包,并以此为基础,分析其以依赖关系,然后从软件源上下载相应的包来解决依赖(这句话来自本站的wenwenxiong大神)。

      写道这里,我们其实提出了解决软件包安装依赖性问题的主流方法,说到底还是APT包管理工具对系统软件源的调取,所以核心还是你要有个资源丰富的源。

       好了,在文章的最后我记录了一些使用的APT命令(来自本站的苏州-微尘大神)

1.apt-cache search package #搜索包

2.apt-cache show package #获取包的相关信息,如说明,大小,版本。

3.apt-cache depends package #了解使用依赖

4.apt-get rdepends package #查看该包被那些包依赖

5.sudo apt-get install package #安装包

6.sudo apt-get install package=version #安装制定版本的包

7.sudo apt-get install package --reinstall #重新安装包

8.sudo apt-get -f install #修复安装(17.10.31,之前小看这个东东了,这个是启动APT自动安装依赖关系的一个功能键,换句话说,你更新完源之后,如果APT还不能自行解决依赖关系,就可以执行一下这个命令)

9.apt-get source package #下载该包的源代码

10.sudo apt-get remove package #删除包

11.sudo apt-get remove package --purge #删除包,包括删除配置文件等

12.sudo apt-get update #更新apt软件源数据库

13.sudo apt-get upgrade #更新以安装的包

14.sudo apt-get dist-upgrade #升级系统

15.sudo apt-get dselect-upgrade #使用dselect升级

16.sudo apt-get build-dep package #安装相关的编译环境

17.sudo apt-get clean & sudo apt-get autoclean #清理无用的包

18.sudo apt-get check #检查是否有损坏的依赖


回复

使用道具 举报

665

主题

1234

帖子

6685

积分

xdtech

Rank: 5Rank: 5

积分
6685
 楼主| 发表于 2020-4-27 16:40:21 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表