apt、cron 和其他程序的“rm:未找到”

apt、cron 和其他程序的“rm:未找到”

由于某种原因,我在系统脚本中总是出现此错误:

rm: not found

例如我想更新系统:

Setting up install-info (5.2.0.dfsg.1-6) ...
/usr/sbin/update-info-dir: 52: /usr/sbin/update-info-dir: rm: not found
dpkg: error processing package install-info (--configure):
 subprocess installed post-installation script returned error exit status 127
Errors were encountered while processing:
 install-info
E: Sub-process /usr/bin/dpkg returned an error code (1)

它与软件包“Install-info”无关。所有软件包都会发生这种情况。当 crond 运行时也会发生这种情况。我认为这与系统脚本想要删除文件时有关。

我可以rm以普通用户和 root 用户身份使用。
这是在升级到 Vivid 后开始的。

更新:
此错误不仅适用于此rm命令,还适用于其他命令,例如datepidof该 cron 日志所示。

/etc/cron.daily/apt:
/etc/cron.daily/apt: 91: /etc/cron.daily/apt: date: not found
/etc/cron.daily/apt: 97: /etc/cron.daily/apt: rm: not found
/etc/cron.daily/apt: 448: /etc/cron.daily/apt: pidof: not found
xargs: rm: No such file or directory
/etc/cron.daily/apt: 176: /etc/cron.daily/apt: date: not found
/etc/cron.daily/apt: 176: /etc/cron.daily/apt: date: not found

更新-2。尝试重新安装coreutilssysvinit-utils

norty@powerplant:~$ sudo apt-get install --reinstall coreutils sysvinit-utils
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 2 reinstalled, 0 to remove and 63 not upgraded.
1 not fully installed or removed.
Need to get 1,176 kB of archives.
After this operation, 0 B of additional disk space will be used.
Get:1 http://se.archive.ubuntu.com/ubuntu/ vivid/main coreutils amd64 8.23-3ubuntu1 [1,137 kB]
Get:2 http://se.archive.ubuntu.com/ubuntu/ vivid/main sysvinit-utils amd64 2.88dsf-53.2ubuntu12 [39.1 kB]
Fetched 1,176 kB in 11s (104 kB/s)
Setting up install-info (5.2.0.dfsg.1-6) ...
/usr/sbin/update-info-dir: 52: /usr/sbin/update-info-dir: rm: not found
dpkg: error processing package install-info (--configure):
 subprocess installed post-installation script returned error exit status 127
Errors were encountered while processing:
 install-info
E: Sub-process /usr/bin/dpkg returned an error code (1)

我还手动下载了软件包coreutilssysvinit-utils。然后我用安装了它们dpkg -i。安装完成没有任何错误,但apt仍然出现相同的错误。

答案1

好的,其中大部分来自同一个包coreutils,并且pidof来自sysvinit-utils。希望这些能够安装。

运行以下命令:

sudo apt-get clean
sudo apt-get update
sudo apt-get install --reinstall coreutils sysvinit-utils

发布任何错误,总是有办法手动安装这些错误。


手动安装:

cd
mkdir aptget;cd aptget
apt-get download coreutils
ar xvf *
tar xvf data*
sudo mv /bin/rm /bin/oldrm
sudo mv /bin/date /bin/olddate
sudo cp bin/rm /bin/
sudo cp bin/rm /usr/bin/
sudo cp bin/date /bin/
sudo cp bin/date /usr/bin/

现在,尝试运行 apt-get 并查看是否成功。如果不再出现“未找到”错误,请运行以下命令:

sudo cp bin/* /bin/
sudo cp bin/* /usr/bin/

完成后,删除临时目录:

cd ..
rm -R aptget

答案2

就我的情况而言,问题在于 /etc/environment 文件中的 PATH 设置是空的。它应该是:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

相关内容