小弟不是太会使用linux,最近一直在摸索。
结果遇到一个难题,使用apt-get install 安装程序时候,无论安装什么样的程序,总是报同样Depends错误导致程序无法安装。
这可能是因为之前装某个程序失败了,倒是依赖关系出现问题,后来查资料了解直接使用apt-get install不加任何软件包就可以解决这个问题了。
apt-get -f install
另外为大家附上一些apt-get的常用命令,来自
http://floongzx.blog.163.com/blog/static/163017368201032614134382/
a)软件包维护
-
apt-get update
- 在你更改了/etc/apt/sources.list 或 /etc/apt/preferences 后,需要运行这个命令以令改动生效。同时也要定期运行该命令,以确保你的源列表是最新的。该命令等价于新立得软件包管理器中的“刷新”,或者是 Windows和OS X 下的 Adept 软件包管理器的 “check for updates”。
-
apt-get upgrade
- 更新所有已安装的软件包。类似一条命令完成了新立得软件包管理器中的“标记所有软件包以便升级”并且“应用”。
-
apt-get dist-upgrade
- 更新整个系统到最新的发行版。等价于在新立得软件包管理器中“标记所有更新”,并在首选项里选择“智能升级” — 这是告诉APT更新到最新包,甚至会删除其他包(注:不建议使用这种方式更新到新的发行版)。
-
apt-get -f install
— 等同于新立得软件包管理器中的“编辑->修正(依赖关系)损毁的软件包”再点击“应用。如果提示“unmet dependencies”的时候,可执行这行命令。
-
apt-get autoclean
- 如果你的硬盘空间不大的话,可以定期运行这个程序,将已经删除了的软件包的.deb安装文件从硬盘中删除掉。如果你仍然需要硬盘空间的话,可以试试,这会把你已安装的软件包的安装包也删除掉,当然多数情况下这些包没什么用了,因此这是个为硬盘腾地方的好办法。
-
apt-get clean
类似上面的命令,但它删除包缓存中的所有包。这是个很好的做法,因为多数情况下这些包没有用了。但如果你是拨号上网的话,就得重新考虑了。
- 包缓存的路径为/var/cache/apt/archives,因此,
du -sh /var/cache/apt/archives
将告诉你包缓存所占用的硬盘空间。
-
dpkg-reconfigure foo
- 重新配置“foo”包。这条命令很有用。当一次配置很多包的时候, 要回答很多问题,但有的问题事先并不知道。例如,
dpkg-reconfigure fontconfig-config
,在Ubuntu系统中显示字体配置向导。每次我安装完一个 Ubuntu 系统,我都会运行这行命令,因为我希望位图字体在我的所有应用程序上都有效。
-
echo “foo hold” | dpkg –set-selectons
- 设置包“foo”为hold,不更新这个包,保持当前的版本,当前的状态,当前的一切。类似新立得软件包管理器中的“软件包->锁定版本”。
- 注:
apt-get dist-upgrade
会复盖上面的设置,但会事先提示。 另外,你必须使用 sudo。输入命令
echo “foo hold” | sudo dpkg –set-selections
而不是
sudo echo “foo hold” | dpkg –set-selections
-
echo “foo install
— 删除“hold”“locked package”状态设置。命令行为
echo “foo install” | sudo dpkg –set-selections
b)仅下载软件包,而不安装的命令:
apt-get -d install 软件包 //-d表示下载的意思,下载完的文件默认保存在/var/cache/apt/archive下.
c) /var/lib/dpkg/status,这个文件记录着安装于系统的软件包的信息记录文件,很重要!可在依赖关系不满足时修改之,让其暂时通过.里面的old文件是对update之前的对应文件的备份文件.