Что-то не так с моей командой /bin/echo .

sudo ls -al  /bin/echo
-rwxr-xr-x 1 root utmp 0 Nov 11 18:05 /bin/echo

Способ1 исправить это:
Я знал, что /bin/echo находится в coretils .
Сначала удалите coreutils, а затем снова установите его.

sudo apt-get remove coreutils
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.

Я не могу удалить его, это бесполезно, чтобы удалить его и переустановить coreutils?

method2 чтобы исправить это:
скомпилировать эхо

cd  /tmp
sudo apt-get source coreutils
cd  coreutils-8.26
/tmp/coreutils-8.26$ ./configure
./configure: line 3492: config.log: Permission denied
./configure: line 3502: config.log: Permission denied

Позвольте мне настроить его с помощью sudo .

sudo ./configure
configure: error: you should not run configure as root (set FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check)

Как исправить /bin/echo в моем Debian?

1 ответ1

2

Получите правильный файл .deb :

mkdir ~/dummy
cd ~/dummy
apt-get download coreutils

Распакуйте это:

sudo dpkg-deb -x *.deb ./

(Примечание: dpkg-deb может работать без sudo но его проще распаковать как root, чтобы получить echo файл с правильным владельцем с самого начала).

Исполняемый файл, который вы ищете, - это ./bin/echo . Заменить /bin/echo:

sudo mv ./bin/echo /bin/

Удалить каталог:

cd ~/
sudo rm -rf ~/dummy

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .