PATH 中未找到“rm”或无法执行“rm”

PATH 中未找到“rm”或无法执行“rm”

好吧,我做了一个大的错误。我尝试从 coreutils:i386 升级到 coreutils:arm64,但出错了。现在我不再有许多程序,包括 rm、touch、chmod 和 mv。

因此,我尝试运行apt-get install coreutils

root@srv028:/tmp# apt-get install coreutils
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
  coreutils
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
Need to get 0 B/2,727 kB of archives.
After this operation, 14.6 MB of additional disk space will be used.
dpkg: warning: 'rm' not found in PATH or not executable
dpkg: error: 1 expected program not found in PATH or not executable
Note: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin
E: Sub-process /usr/bin/dpkg returned an error code (2)

我确实有备份,但这意味着半天的工作成果会丢失。所以我的问题是,这可以恢复吗?如果可以,如何恢复?

答案1

嗯,首先要感谢https://unix.stackexchange.com/questions/115743/i-deleted-bin-rm-how-do-i-recover-it

sudo touch /bin/rm
sudo chmod +x /bin/rm
apt-get download coreutils
sudo dpkg --unpack coreutils*

您在 rm 所在的位置创建一个虚拟文件,并添加执行权限。您下载 coreutils 应用程序(不需要 sudo),然后安装文件。dpkg 将读取 coreutils 包并进行安装。

答案2

我还有 busybox。所以我使用提取了 deb 文件,然后使用复制了dpkg -x coreutils_8.23-4_amd64.deb coreutils文件busybox cp coreutils/bin/* /bin/busybox chmod +x /bin/*

答案3

好吧,我犯了同样的错误。对我来说,touch 和 chmod 都不起作用……但是:幸运的是,我安装了 emacs。所以:

  1. sudo emacs
  2. 创建一个空文件/bin/rm
  3. 在 emacs 中,执行C-x set-file-modes并将 /bin/rm 的模式更改为 +x。
  4. apt-get download coreutils
  5. sudo dpkg --unpack coreutils*

相关内容