sudo apt-get install -f

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
peishenfei2
帖子: 143
注册时间: 2016-07-20 16:40
系统: Ubuntu15

sudo apt-get install -f

#1

帖子 peishenfei2 » 2017-11-19 20:51

在安装deb包的时候,有些包虽然安装上了,但是少一些依赖
sudo apt-get install -f
有时候就会把依赖装上,有时候会把要装的软件卸载???
1,请问这是为什么?他是依据什么来判断,是装依赖,还是卸载不完全软件,

2,有没有办法,强制补齐依赖?

3,如果安装多个deb包,每个都需要install -f补齐依赖,
那每安装一个deb包,执行一次install -f
和,安装多个deb包,最后执行一次install -f 效果会是一样的吗
poloshiao
论坛版主
帖子: 18279
注册时间: 2009-08-04 16:33

Re: sudo apt-get install -f

#2

帖子 poloshiao » 2017-11-19 21:32

sudo apt-get install -f
不要對它依賴太深
它 不是萬靈丹
反而比較像懶人包

當終端機出現缺少什麼相依套件或推薦套件時
手動一一補安裝上去 再回過頭來安裝原來的套件
反而更有幫助

提醒
養成習慣 安裝任何套件 包含 .deb 以前
先執行
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade # 選項
意思是 把你的系統 已安裝套件 更新到最新版本
碰到 相依套件或推薦套件 不滿足 的情況 會減到最少
头像
vickycq
帖子: 4507
注册时间: 2011-03-20 13:12
系统: Debian
来自: 山东省寿光县
联系:

Re: sudo apt-get install -f

#3

帖子 vickycq » 2017-11-19 21:52

peishenfei2 写了:1,请问这是为什么?他是依据什么来判断,是装依赖,还是卸载不完全软件,
如果软件源中找不到需要的依赖,唯一的方案就是卸载
用 dpkg -i 安装时不会自动安装依赖。不过目前的 apt 支持安装本地软件包,可以自动安装依赖。
当然,仅限于软件源中能找到的依赖。
语法是 apt install <deb 路径>,注意,当前目录也要用 ./ 指明
peishenfei2 写了:2,有没有办法,强制补齐依赖?
如果软件源中找不到需要的依赖,可能需要手动检查依赖,然后自行获取安装。

例如要安装 wps,依赖 libpng12,但软件源只有 libpng16。这时可以到旧版 Ubuntu 软件源手动下载 libpng12 安装
一般只在依赖比较简单的情况下容易操作。如果拖泥带水一大堆,甚至涉及到一些基本库,那最好还是老实放弃
peishenfei2 写了:3,如果安装多个deb包,每个都需要install -f补齐依赖,那每安装一个deb包,执行一次install -f和,安装多个deb包,最后执行一次install -f 效果会是一样的吗
安装第一个 deb 包就因为依赖出错的话,后面再安装其它包不是会报相同错吗?
这时,如果不把第一个 deb 的依赖解决掉,apt 暂时处于不可用状态,干啥都报错
我记不清了,你自己试试
Debian 中文论坛 - forums.debiancn.org
欢迎所有 Debian GNU/Linux 用户
peishenfei2
帖子: 143
注册时间: 2016-07-20 16:40
系统: Ubuntu15

Re: sudo apt-get install -f

#4

帖子 peishenfei2 » 2017-11-20 23:03

谢谢你的回复
poloshiao 写了: 手動一一補安裝上去 再回過頭來安裝原來的套件
反而更有幫助
这个。。。,如果依赖比较少的话,确是可行,但是依赖较多,一个一个的装有点困难啊。。。
请问手动一个个的安装依赖,安装好了之后再回过头来安装原来的套件,和install -f(自动安装补齐依赖)有什么不一样吗,
他们做的事情不都是安装相同的依赖吗?(应该不会有不同吧,或者最起码,想要安装的那个软件都能正常运行吧)

另外,这个更有帮助是什么意思,对什么有帮助,(我只是感觉一个一个的装,仅仅是多敲了键盘。。。。)
poloshiao
论坛版主
帖子: 18279
注册时间: 2009-08-04 16:33

Re: sudo apt-get install -f

#5

帖子 poloshiao » 2017-11-21 8:26

这个。。。,如果依赖比较少的话,确是可行,但是依赖较多,一个一个的装有点困难啊。。。
1. 如果 終端機 出現 缺少 package1, package2, ... , packagen 套件
一次指令安裝
sudo apt-get install package1 package2 ... packagen
套件名稱之間 留下一個空白
1-1. 加 -s 參數 實際上 不執行安裝 但是可以提醒你 該安裝指令 會碰到什麼問題 (特別是 有沒有 打錯字) 提早做準備
sudo apt-get -s install package1 package2 ... packagen
1-1-1. 參見
http://manpages.ubuntu.com/manpages/xen ... get.8.html
apt-get - APT package handling utility -- command-line interface
-s, --simulate, --just-print, --dry-run, --recon, --no-act
1-2. 善用 複製 / 貼上 減少 敲敲打打
和install -f(自动安装补齐依赖)有什么不一样吗,
他们做的事情不都是安装相同的依赖吗?(应该不会有不同吧,或者最起码,想要安装的那个软件都能正常运行吧)
另外,这个更有帮助是什么意思,对什么有帮助
2. 百聞不如親自體驗
2-1. 例如 遞迴相依 包含 相依版本不符
2-2. 例如 輪迴依賴 例如 package1 依賴 package2, 但是 package2 又依賴 package1
2-3. 例如 互相衝突 package3 與 package4 互相衝突
2-4. 例如 相依關係 改變了 package5 的 版本 A 相依於 package6, 版本 B 卻 相依於 package7
...

3. 許多情況
sudo apt-get install -f
無法充分理解的情況
使用它來搗亂 反而更複雜
需要花費更多時間來尋找 現在是怎麼啦
peishenfei2
帖子: 143
注册时间: 2016-07-20 16:40
系统: Ubuntu15

Re: sudo apt-get install -f

#6

帖子 peishenfei2 » 2017-11-21 15:26

手动感谢 poloshiao vickycq
回复