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

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

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

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

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

315
задан 11 September 2017 в 06:10

6 ответов

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

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

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

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

)
537
ответ дан 22 May 2018 в 20:18

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

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

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

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

)
540
ответ дан 18 July 2018 в 09:53

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

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

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

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

)
540
ответ дан 24 July 2018 в 19:27

Моя догадка похожа на Алекси, но я подозреваю, что вы, возможно, переместили двоичный файл 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
ответ дан 22 May 2018 в 20:18
  • 1
    Ирония заключается в том, что комментарий ответчика к принятому ответу подтверждает, что это то, что сделал этот вопрос, с символической ссылкой, а не изменяя PATH, как в этом ответе. – JdeBP 16 August 2017 в 14:42
  • 2
    @JdeBP: Не совсем, главное - конфликт имен - я думаю, что это было достигнуто вторично, даже если я говорю это сам. Я также упомянул об этом в комментариях к другому ответу в ответ на комментарий, который предложил то же самое, что и этот ответ, но я первоначально рассматривал это как еще одну возможность, пока не понял, что перемещение / копирование двоичного файла (в отличие от symlinking, о котором я не думал) не сработало бы из-за того, как работает Карликовая крепость. (Т.е. он просто извлечен, не установлен - он не найдет свои собственные файлы данных, если не в том же каталоге) – Aleksi Torhamo 16 August 2017 в 16:38
  • 3
    Лучшей командой может быть sudo which -a df, чтобы увидеть все df команды, найденные в пути. – Doug Henderson 16 August 2017 в 18:09
  • 4
    Подождите, пока он 2017, и мы еще apt-get используем? – Έρικ Κωνσταντόπουλος 18 August 2017 в 12:37
  • 5
    @AleksiTorhamo Просто чтобы уточнить, переменная PATH, которую apt увидит, переопределяется командой sudo (/etc/sudoers имеет переменную secure_path, чтобы предотвратить проблемы безопасности с пользователями, изменяющими их PATH). Я согласен с тем, что осознание того, что двоичный файл Dwarf Fortress имеет приоритет в разрешении PATH, - это ключевое понимание. – maccam94 18 January 2018 в 06:50

Моя догадка похожа на Алекси, но я подозреваю, что вы, возможно, переместили двоичный файл 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
ответ дан 18 July 2018 в 09:53

Моя догадка похожа на Алекси, но я подозреваю, что вы, возможно, переместили двоичный файл 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
ответ дан 24 July 2018 в 19:27
  • 1
    Ирония заключается в том, что комментарий ответчика к принятому ответу подтверждает, что это то, что сделал этот вопрос, с символической ссылкой, а не изменяя PATH, как в этом ответе. – JdeBP 16 August 2017 в 14:42
  • 2
    @JdeBP: Не совсем, главное - конфликт имен - я думаю, что это было достигнуто вторично, даже если я говорю это сам. Я также упомянул об этом в комментариях к другому ответу в ответ на комментарий, который предложил то же самое, что и этот ответ, но я первоначально рассматривал это как еще одну возможность, пока не понял, что перемещение / копирование двоичного файла (в отличие от symlinking, о котором я не думал) не сработало бы из-за того, как работает Карликовая крепость. (Т.е. он просто извлечен, не установлен - он не найдет свои собственные файлы данных, если не в том же каталоге) – Aleksi Torhamo 16 August 2017 в 16:38
  • 3
    Лучшей командой может быть sudo which -a df, чтобы увидеть все df команды, найденные в пути. – Doug Henderson 16 August 2017 в 18:09
  • 4
    Подождите, пока он 2017, и мы еще apt-get используем? – Έρικ Κωνσταντόπουλος 18 August 2017 в 12:37
  • 5
    @AleksiTorhamo Просто чтобы уточнить, переменная PATH, которую apt увидит, переопределяется командой sudo (/etc/sudoers имеет переменную secure_path, чтобы предотвратить проблемы безопасности с пользователями, изменяющими их PATH). Я согласен с тем, что осознание того, что двоичный файл Dwarf Fortress имеет приоритет в разрешении PATH, - это ключевое понимание. – maccam94 18 January 2018 в 06:50

Другие вопросы по тегам:

Похожие вопросы: