Вопрос: Крепость гномов, начиная с апплета


Когда я бегу apt-get upgrade на моей машине Ubuntu 17.04, иногда она запускается Крепость гномов само по себе.

Это произошло уже по крайней мере два раза, поэтому, вероятно, это было не просто одно время. Кроме того, выполнениеapt-get upgrade казалось, был приостановлен до тех пор, пока я вручную не покинул Крепость Гномов, так что, скорее всего, это не было вызвано чем-то еще запущенным за это время.

Консоль в то время сказала Unpacking xxx. где xxx было что-то с mysql по имени. Однако я не знаю, какой именно пакет, как сегодня, apt-get upgrade обновил много связанных с mysql пакетов.

Я хотел бы знать, что происходит и как остановить это. Спасибо за ваши идеи.


312
2017-07-22 05:15


Источник


Поэтому вы говорите, что всякий раз, когда вы бегаете apt-get upgrade в терминале начинаются игры?
@MichaelBay не каждый раз, только когда он что-то обновляет. И я не могу проверить, всегда ли это происходит, потому что сейчас нет пакетов для обновления. - Adrijaned
Эта DF Hack долго читается, и я отказался от частичного пути, но, возможно, это будет полезно для вас. - WinEunuuchs2Unix
reddit.com/r/Ubuntu/comments/6tomtk/... - Ciro Santilli 新疆改造中心 六四事件 法轮功


Ответы:


С таким странным вопросом, конечно, нельзя сказать наверняка, но я буду есть свою шляпу, если моя первая догадка неверна. :)

Единственный способ, о котором я могу думать, как можно связать такие несвязанные вещи, это: После установки (ну, извлечение) Dwarf Fortress вместо того, чтобы каждый раз переходить в каталог и запускать его с помощью ./df, вы хотели иметь возможность запускать его из любого места, как и любая старая команда. Вы добавили каталог Dwarf Fortress в свой $PATH, до системные каталоги, возможно, случайно, возможно, потому, что вы заметили, что это не сработало иначе, и вместо этого вы просто получите информацию о своих файловых системах.

Создан исполняемый файл «Гном-крепость» df, который также является названием системного инструмента для отображения дискового пространства ваших файловых систем, создавая столкновение. Сделав это так, чтобы при вводе df, Начинается Крепость Гном, вы затеняли системный инструмент, поэтому, когда сценарий хочет - допустим, проверить, достаточно ли свободного места для распаковки архива, а не для вызова df - системный инструмент - вместо этого он запустит Крепость Гномов. И после того, как вы покинете Крепость Гномов, бедный маленький сценарий будет очень смущен тем, почему ему не была предоставлена ​​информация об использовании диска, о которой он просил.

В любом случае, спасибо за смех, это должно быть среди самых смешных проблем, которые я когда-либо видел на StackExchange. :)


540
2017-08-14 17:30



Комментарии не предназначены для расширенного обсуждения; этот разговор был переехал в чат, - Thomas Ward♦


Моя догадка похожа на Алексия, но я подозреваю, что вы, возможно, переместили двоичный файл Dwarf Fortress в /usr/local/bin или /usr/bin (и, надеюсь, не /bin).

Попробуйте запустить sudo which df в вашем терминале. Если он не говорит /bin/df, попробуйте переместить файл, указанный в which выход в /usr/games/ (вы сможете запустить игру в будущем, запустив /usr/games/df). После этого Apt должен снова работать.

======

В противном случае в сценарии, где sudo which df говорит /bin/df, попробуйте запустить /bin/df, Если это было перезаписано игрой, вам нужно будет переместить двоичный файл игры, как указано выше, и sudo apt-get install --reinstall coreutils,

Если это не поможет, потому что df , вам может потребоваться более радикальные меры (например, создание поддельного скрипта для замены df временно или ручная загрузка пакета и извлечение из него двоичного файла df).


61
2017-08-15 08:47



Ирония заключается в том, что комментарий испытуемого к принятому ответу подтверждает, что это то, что сделал этот вопросщик с символической ссылкой, а не с изменением PATH как в этом ответе. - JdeBP
@JdeBP: Не совсем, главное - конфликт имен - я думаю, что это было достигнуто вторично, даже если я говорю это сам. Я также упомянул об этом в комментариях к другому ответу в ответ на комментарий, который предложил то же самое, что и этот ответ, но я первоначально рассматривал это как еще одну возможность, пока не понял, что перемещение / копирование двоичного файла (в отличие от symlinking, о котором я не думал) не сработало бы из-за того, как работает Карликовая крепость. (Т.е. он просто извлечен, не установлен - он не найдет свои собственные файлы данных, если не в том же каталоге) - Aleksi Torhamo
Лучшая команда может быть sudo which -a df увидеть все df команд, найденных в пути. - Doug Henderson
Подождите 2017, и мы используем apt-get все же? - Έρικ Κωνσταντόπουλος
@AleksiTorhamo Просто чтобы уточнить, переменная PATH, которую apt увидит, переопределяется командой sudo (/etc/sudoers имеет secure_path чтобы предотвратить проблемы безопасности с пользователями, изменяющими их PATH). Я согласен с тем, что осознание того, что двоичный файл Dwarf Fortress имеет приоритет в разрешении PATH, - это ключевое понимание. - maccam94