Я использую предварительно созданную Ubuntu VM и там, кажется, ack
команда уже установила, но я хочу установить ack-grep
и переименуйте это к ack
вместо этого.
Как я могу удалить это ack
команда? Это ack
команда является каким-то преобразователем Кандзи. Я хочу удалить его полностью, если это возможно.
Сделайте я просто переименовываю файлы в /usr/bin
и это будет просто работать?
У Вас есть несколько опций, в зависимости от Ваших определенных потребностей и предпочтений.
В этой ситуации лучше не вручную удалить и переименовать эти файлы, потому что:
Чему-то, возможно, понадобились бы они.
Ваши изменения могли бы быть частично или полностью отменены при обновлении системы.
(Вы могли сказать диспетчеру пакетов не делать так, но это вряд ли будет самым легким способом достигнуть Вашей цели.)
И, согласовывающиеся с первыми двумя соображениями, Вы выразили предпочтение для завершенного удаления существующего ack
, какое просто удаление, которое не будет обычно делать один файл.
Таким образом, лучше проверить если /usr/bin/ack
кажется необходимым и, в противном случае удалите его с диспетчером пакетов. Но Вы, вероятно, не должны удалять его вообще, как детализировано ниже.
Поиск Пакетов Ubuntu показывает это в Ubuntu 12.04, /usr/bin/ack
обеспечивается ack
пакет.
ack
, после проверки безопасно сделать так.Вы не должны удалять ack
: если Вы используете псевдоним путь или вставляете символьную ссылку /usr/local/bin
, или в Вашем частном ~/bin
, это будет выполнено даже если /usr/bin/ack
остается установленным. Таким образом это является на самом деле дополнительным.
Выполненный apt-get -s remove ack
моделировать демонтаж ack
. Это покажет то, от чего другие пакеты, если таковые имеются, зависят достаточно сильно ack
то, что они были бы удалены наряду с ним.
Не стесняйтесь разворачивать свой вопрос с выводом этого apt-get -s
команда, если Вы хотите справку или подтверждение в определении при удалении ack
также удалил бы что-либо возможно важное.
Если никакие другие удаления пакета не показаны, или если бы Вы знаете другие пакеты, которые были бы удалены, также ненужные, можно затем возобновить реальную операцию удаления:
sudo apt-get remove ack
Таким образом, для реальной вещи опустить -s
(и выполненный это как корень с sudo
).
ack
Вы, имеют сценарии тот вызов ack
, это не будет достаточно).sudo ack ...
.Но это быстро, легко, просто, и часто достаточно.
Если Вы хотите создать что-то, что может использоваться всеми способами "установленный" ack
команда может использоваться, можно пропустить следующий раздел (и продолжить в "Символьных ссылках, хороши...").
ack-grep
названный ack
Если Вы решаете, что псевдоним оболочки - то, что Вы хотите, лучший способ сделать, он должен, вероятно, вставить его .bash_aliases
в Вашей домашней папке.
Тот файл, вероятно, еще не существует, но если он будет существовать при запуске оболочки (например, при открытии нового Окна терминала или вкладки) то он будет использоваться. Это вызвано тем, что .bashrc
выполнения, когда оболочка удара запускается, и тот файл проверки если .bash_aliases
существует и выполняет то, что находится в нем, если это делает.
Выполненный gedit ~/.bash_aliases
. В текстовом редакторе записать alias ack='ack-grep'
и сохраните файл. Псевдоним должен работать на все оболочки, запущенные после этого.
Если бы Вы не хотите делать псевдоним (или выполнение так не дало бы Вам, в чем Вы нуждаетесь), символьная ссылка, вероятно, в чем Вы нуждаетесь.
Когда Вы создаете Ваш ack
команда, для него лучше быть символьной ссылкой на ack-grep
вместо копии, потому что затем, когда ack-grep
изменения (например, если это обновлено до более новой версии), ack
выполнит новую версию автоматически.
Вы могли поместить новое ack
в /usr/bin
, но я рекомендую делать его /usr/local/bin/ack
вместо этого. /usr/local/bin
уже находится, вероятно, в Вашей переменной окружения PATH, перед /usr/bin
. Например, на моей машине:
$ echo $PATH
/home/ek/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
В Ubuntu, /usr/bin
одно из нормальных мест для диспетчера пакетов системы для помещения исполняемых файлов. /usr/local/bin
одно из нормальных мест для Вас для помещения программного обеспечения, которое Вы устанавливаете сами. Это не совсем, что ситуация, в этом, Вы просто делаете ссылку для выполнения программного обеспечения, это уже установлено. Но это подобно, и что еще более важно, наполните Вас вставленный /usr/local/bin
гораздо менее вероятно когда-либо для конфликта с чем-либо созданным или управляемым диспетчером пакетов Ubuntu, чем если бы Вы вставляете его /usr/bin
.
Или Вы могли бы предпочесть создавать символьную ссылку в своей домашней папке. Если Вы сделаете это, то это будет работать на Вашу учетную запись пользователя и не влиять на любых других. Если Вы предпочитаете это, пропустите вниз к "Альтернативе: Сделайте Символьную ссылку в ~/bin
."
/usr/local/bin
Создать символьную ссылку /usr/local/bin/ack
, указанный /usr/bin/ack-grep
, выполненный:
cd /usr/local/bin
sudo ln -s /usr/bin/ack-grep ack
Если cd
управляйте сбоями с bash: cd: /usr/local/bin: No such file or directory
, сделайте каталог с sudo mkdir /usr/local/bin
и попробуйте еще раз. (Даже если каталог еще не существует, это может быть в Вашем PATH
переменная среды, в этом случае Ваш ack
команда будет выполнена.)
/usr/local/bin
Не находится в $PATH
Проверять если программы в /usr/local/bin
(включая символьные ссылки на программы в другом месте), будет выполнен - или поиск и устранение неисправностей, если они не будут выполнены - Вы видите если /usr/local/bin
находится в Вашем PATH
переменная среды. Чтобы сделать это, работать echo $PATH
.
Это, вероятно, там, но в противном случае можно отредактировать PATH=
строка в /etc/environment
и добавьте его. Можно создать резервную копию того файла с sudo cp /etc/environment /etc/environment.old
и отредактируйте его с gksudo gedit /etc/environment
. Затем выйдите из системы и въезжайте задним ходом.
Я предлагаю переменные изменяющей среды в масштабе всей системы потому что вставление символьной ссылки /usr/local/bin
относится к целой системе. И я предлагаю этот путь, потому что Вы, кажется, выражаете предпочтение изменения этих команд для Вашей целой системы. Я не рекомендовал бы изменения в масштабе всей системы в переменных среды, если бы Вы вставляли символьную ссылку ~/bin
. Посмотрите ниже, если Вы интересуетесь той опцией.
~/bin
В Ubuntu, значении по умолчанию .profile
файл, помещенный в домашнюю папку каждого пользователя, содержит:
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
Можно создать ~/bin
(~
означает "Ваш корневой каталог", и можно использовать ту стенографию, когда Вы вводите команды в терминале), и выйдите из системы и въезжайте задним ходом, и это будет добавлено к $PATH
. Исполняемые файлы (и символьные ссылки на них) помещенный в ~/bin
будет затем работать.
Сделать Ваше частное bin
и помещенный ack
символьная ссылка на /usr/bin/ack-grep
, выполненный:
mkdir ~/bin
cd ~/bin
ln -s /usr/bin/ack-grep ack
На Вашей следующей сессии входа в систему (и все они после этого), можно работать ack
для ack-grep
.
Более безопасная опция, вместо того, чтобы переименовать файлы, состоит в том, чтобы установить псевдоним. Это, вероятно, означает, что Вы захотите работать sudo gedit ~/.bashrc
для редактирования конфигурационного файла оболочки. Добавьте строку alias ack="ack-grep"
до конца файла и сохраните его. Можно выполнить ту же самую строку как команда, чтобы сразу установить псевдоним или ожидать, пока Вы не перезапускаете свою систему. См. , Как я создаю постоянный псевдоним Bash? для большего количества информации
Не уверенный, если это будет работать с ack
установленный или нет. Если Вы уверены, что не нуждаетесь в нем, просто удаляете его как любой другой пакет: sudo apt-get remove ack
.