Карликова фортеця починається під час оновлення apt-get


322

Коли я працюю apt-get upgradeна своїй машині Ubuntu 17.04, іноді вона запускає карликову фортецю сама по собі.

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

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

Я хотів би знати, що відбувається, і як не допустити цього. Дякуємо за ваші ідеї.


Отже, ви говорите, що коли ви бігали apt-get upgradeв термінал, починаються ігри?

@MichaelBay не кожен раз, лише тоді, коли він оновлює щось. І я не можу перевірити, чи завжди це відбувається, тому що зараз немає пакетів для оновлення.
Адріаніан

Цей DF Hack давно прочитаний, і я відмовився частково, але, можливо, він стане вам у нагоді.
WinEunuuchs2Unix

Відповіді:


550

З таким дивним запитанням, звичайно, неможливо сказати напевно - але я з'їм свою шапку, якщо перший мій погляд не правильний. :)

Єдиний спосіб, з якого я можу подумати, як можна пов’язати такі непов'язані речі, це: встановивши (добре, витягуючи) карликову фортецю, замість того, щоб щоразу ходити в каталог і запускати її ./df, ви хотіли мати можливість запускати її де завгодно, як і будь-яка стара команда. Ви додали Dwarf Fortress каталогу до вашого $PATH, до того системних каталогів, можливо випадково, можливо , тому , що ви помітили , він не працює інакше, і ви б замість того, щоб просто отримати інформацію про ваших файлових системах.

dfІм'я виконуваного файлу Dwarf Fortress , що також є назвою системного інструменту для відображення використання дискового простору вашої файлової системи, створюючи зіткнення. Зробивши так, що при dfвведенні програми "Dwarf Fortress" ви затінили системний інструмент, тому коли сценарій хоче - скажімо - перевірити, чи є у вас достатньо вільного місця для розпакування архіву, а не для виклику df- системного інструменту - замість цього запуститься фортеця карликів. І після того, як ви вийдете з карликової фортеці, поганий маленький сценарій буде дуже заплутаний, чому йому не дали інформацію про використання диска, яку він просив.

У будь-якому випадку, дякую за сміх, це має бути однією із найсмішніших проблем, які я коли-небудь бачив, озвучені на StackExchange. :)


Коментарі не для розширеного обговорення; ця розмова перенесена в чат .
Thomas Ward

64

Моя здогадка схожа на Алексі - х , але я підозрюю , що ви , можливо , перемістили 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).


7
Іронічно, що коментар опитуваного до прийнятої відповіді підтверджує, що це те, що робив запитувач, із символічним посиланням, а не змінюючи, PATHяк у цій відповіді.
JdeBP

1
@JdeBP: Насправді, головним моментом є конфлікт імен - я думаю, наскільки це було досягнуто другорядне, навіть якщо я сам це кажу. Я також згадав про це у коментарях до іншої відповіді, відповідаючи на коментар, який пропонував те саме, що і ця відповідь, але спочатку я розглядав згадування про це як іншу можливість, поки не зрозумів, що переміщення / копіювання двійкового (на відміну від символічне посилання, про яке я не думав) не працювало б завдяки тому, як працює фортеця-карлик. (Тобто це просто видобуто, а не встановлено - він не знайде власні файли даних, якщо не знаходиться в одному каталозі)
Aleksi Torhamo

2
Кращою командою може бути sudo which -a dfперегляд усіх dfкоманд, знайдених на шляху.
Дуг Хендерсон

Зачекайте, коли настане 2017 рік, і ми apt-getще використовуємо його
EKons

@AleksiTorhamo Просто для уточнення змінна PATH, яку вдасться побачити, переосмислюється командою sudo ( /etc/sudoersмає secure_pathзмінну, щоб запобігти проблемам із безпекою користувачів, які змінювали свій PATH). Я погоджуюся, що розуміння того, що бінарний фортеця Карликів має перевагу в резолюції PATH, є ключовим оглядом.
maccam94
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.