Dav*_*d Z 2 package-management aptitude apt dpkg
昨天我将一台笔记本电脑从 Kubuntu 9.04 (Lucid) 升级到 9.10 (Karmic)。然后我尝试安装一些软件
$ sudo aptitude install dont-remember-what-it-was
Run Code Online (Sandbox Code Playgroud)
我得到
sudo: aptitude: command not found
Run Code Online (Sandbox Code Playgroud)
等等,什么?天赋怎么会少呢?不仅如此——apt-get
而且dpkg
还以某种方式神秘地从系统中消失了。我已经手动签入/usr/bin
并确认了所有其他目录中$PATH
的文件实际上不存在。
$ ls /usr/bin/aptitude
ls: cannot access /usr/bin/aptitude: No such file or directory
Run Code Online (Sandbox Code Playgroud)
幸运的是,我有两个可用的图形包管理器,Adept Installer 和 KPackageKit。他们都报告aptitude
安装了软件包。为了安全起见,我尝试通过 GUI 卸载并重新安装它,卸载/重新安装似乎顺利进行。但实际的程序二进制文件仍然缺失。
这是正常的事情吗?如果没有,有没有人听说过它发生了?如果我升级到 10.04,丢失的程序是否会神奇地重新出现?
编辑:我不知道发生了什么,但是在将计算机关闭一整夜并重新启动后,问题似乎已自行解决。所有正确的文件似乎都在那里。
那绝对不正常!
要获取 dpkg 和 apt-get,您可以执行以下操作:下载dpkg_1.15.8.2ubuntu3_i386.deb和apt_0.7.25.3ubuntu9.1_i386.deb
ar x dpkg_1.15.8.2ubuntu3_i386.deb
sudo tar -C / -xzf data.tar.gz
ar x apt_0.7.25.3ubuntu9.1_i386.deb
sudo tar -C / -xzf data.tar.gz
Run Code Online (Sandbox Code Playgroud)
请注意,某些包在内部使用 lzma 而不是 gzip 压缩,因此必须使用
sudo tar --lzma -xf data.tar.lzma
Run Code Online (Sandbox Code Playgroud)
之后你应该能够做到apt-get update
然后安装 aptitude
apt-get install --reinstall aptitude
Run Code Online (Sandbox Code Playgroud)
警告!
我真的不建议人们安装这样的软件包!一定要看具体包的配置,有没有缺少依赖!如果可能的话,之后通过 apt 或 dpkg 重新安装软件包。