Попросите установить программу после & ldquo; Программа «x» в настоящее время не установлена ​​& rdquo;

Если вы попытаетесь выполнить программу, которая не установлена, вы получите сообщение

The program 'x' is currently not installed. You can install it by typing: 
sudo apt-get install x

и вместо того, чтобы предлагать вам установку программы для вас, вам нужно ввести фактическую команду. Как можно изменить это поведение?

1
задан 9 January 2014 в 06:08

3 ответа

Мое решение - это гибрид между безопасностью и комфортом:

auto-apt проверяет доступ к файлам программ, запущенных в его средах, и если программа пытается получить доступ к файлу, который, как известно, принадлежит к удаленному пакету , auto-apt установит этот пакет с помощью apt-get. Для этой функции требуется apt и sudo. Он также предоставляет простую базу данных для поиска, в каком пакете содержится запрошенный файл.

Это эмулятор терминала, в который вы входите в среду, в которой каждый доступ к файлам проверяется до начала вручную с помощью auto-apt, и если он не существует, он ищет в базе данных (a la apt-file) и загружает и устанавливает нужный пакет, а затем позволяет программе продолжить работу. Вы должны выполнить его как root:

sudo auto-apt

Это полезно в тех случаях, когда вы создаете пакет и не в настроении находиться перед экраном, ищем каждую ошибку конфигурации для отсутствующих заголовков , и т. д.

Это также можно использовать как замену apt-get + apt-file, где вы можете устанавливать программы, просто указывая command на выполнение.

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

Man page: http://derpi.tuwien.ac.at/cgi- бен / человек / man2html? 1 + авто-склонный

1
ответ дан 24 May 2018 в 20:59

Автоматическая установка была бы плохой идеей. Если вы хотите сохранить некоторую типизацию, вы можете использовать

sudo apt-get install !!

, где !! будет заменен последней командой из истории. Вероятно, вы тоже можете сделать это псевдонимом, но я не знаю, как добавить !!, не оценивая его.

Есть некоторые оговорки, хотя, как упоминалось @ eliah-kagan и @gertvdijk в комментарии. Некоторые программы не имеют того же имени пакета, что и исполняемый файл. Кроме того, при передаче аргументов в двоичный файл это может привести к неожиданным результатам.

0
ответ дан 24 May 2018 в 20:59
  • 1
    Конечно, я знаю, что мое предложение не является отличным решением, но оно может работать «достаточно хорошо». на основе потребностей пользователей. – l3dx 16 August 2013 в 12:48
  • 2
    Имена команд (имя файла бинарного файла в системе) не обязательно совпадают с именем пакета. – gertvdijk 16 August 2013 в 12:51
  • 3
    l3dx: Хотя у меня все еще есть свои опасения (в том числе @ gertvdijk указывает, что имена пакетов и команд часто различны, а также проблемы с возможными очень плохими последствиями дополнительных аргументов командной строки, переданных исходной команде), кажется, что вы на что-то , После небольшого тестирования кажется, что на практике это работает лучше, чем (я думаю), это работает теоретически. Я по-прежнему рекомендую расширить этот ответ для уточнения, предупреждения и, возможно, для детализации других вариантов. В любом случае, я отказался от этого, но удалил мой downvote. – Eliah Kagan 16 August 2013 в 12:54

Есть несколько методов для быстрой установки предлагаемого пакета:

Добавьте export COMMAND_NOT_FOUND_INSTALL_PROMPT=1 к чему-то вроде ~/.bashrc, это самый «крутой» способ, хотя, очевидно, не совсем безопасный, но, вероятно, 90 % времени будет вызывать внутреннее «Спасибо, это именно то, что я хотел, чтобы вы сделали!» ответ. (Один личный недостаток этого метода состоит в том, что я, кажется, нахожу ответ трудным запомнить / искать, поэтому я, как правило, не использовал его до сих пор.) Если вы используете терминал по умолчанию, вы можете быстро выбрать строку и щелкните его правой кнопкой мыши, чтобы вставить его прямо в командную строку. (Другие терминалы или приложения SSH могут иметь разные методы.) На практике я стараюсь найти это достаточно быстро и немного сложнее сделать «случайно» и без каких-либо предварительных настроек, что я, как правило, делаю это вместо этого. Однако есть что сказать, если вы можете (или хотите учиться) быстро набирать текст - для ввода sudo apt install packagename напрямую. Это помогает вам осуществлять свою мышечную память, а также означает, что вам нужно читать и вводить имя пакета, а это значит, что вы, скорее всего, будете легче запоминать его в будущем. Это также немного проще в более поздних версиях Ubuntu, потому что apt работает вместо apt-get.
0
ответ дан 24 May 2018 в 20:59

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

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