2

На моем Linux я установил три версии одной и той же программы.

Итак, у меня есть QWERTY4.0, QWERTY4.1 и QWERTY4.2.

Я использую их все поочередно, но стандартная командная строка linux "qwerty" отправляет меня к версии QWERTY4.0.

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

2 ответа2

1

Вы можете запустить конкретную версию программы, указав точный путь к двоичному файлу, например, /path/to/qwerty4.0/qwerty , /path/to/qwerty4.1/qwerty и т.д.

Вы можете создать псевдоним и добавить его в конфигурацию вашей оболочки (.bashrc если ваша оболочка bash):

alias qwerty40=/path/to/qwerty4.0/qwerty
alias qwerty41=/path/to/qwerty4.1/qwerty
alias qwerty41=/path/to/qwerty4.2/qwerty
1

Несколько быстрых советов:

which qwerty
file $(which qwerty)

который выводит абсолютный путь к исполняемому файлу / символической ссылке на исполняемый файл. Вторая команда просто получает выход (путь) от команды which, поэтому мне не нужно ее печатать. Вы также можете использовать команду типа (вместо которой), чтобы выяснить абсолютный путь. Файл скажет вам, является ли это символической ссылкой или сценарием или даже исполняемым файлом.

Файл может быть простой символической ссылкой, указывающей на qwerty4.0. Если так, то есть вероятность, что это контролируется через систему альтернатив (или обновления альтернатив). Вы можете понять это, посмотрев выходные данные update-alternatives --get-selections . Если это так, вы можете изменить значение по умолчанию с помощью update-alternatives --config qwerty . Если это не контролируется системой альтернатив (но это символическая ссылка), вы можете обновить символическую ссылку следующим образом:

ln -s -f /path/to/qwerty4.2/qwerty /usr/local/bin/qwerty

... при условии, which qwerty дал /usr/local/bin/qwerty.

Это также может быть средство запуска, обычно скрипт shell/bash. Если это так, вы можете либо просто попытаться изменить (отредактировать) его, чтобы указать правильную версию. Вы также можете перейти в каталог соответствующего приложения, чтобы найти обновленную версию этого модуля запуска, а затем скопировать его на место.

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

Псевдонимы уже упоминались. Псевдонимы работают хорошо, но если вам нужно общесистемное решение, символические ссылки обычно быстрее. Кроме того, в зависимости от того, как настроены псевдонимы общесистемной оболочки, они могут не работать в разных оболочках и т.д. Локальные (bash) псевдонимы могут храниться в .bashrc или, возможно, .bash_aliases. Если вам нужны общесистемные псевдонимы, /etc/profile.d/ может быть хорошим местом для их размещения (должно работать для большинства / всех оболочек).

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