Если я хочу исказить исполняемый файл в /usr/local/bin
, Существует ли корректный способ сделать такой псевдоним? и как я могу сделать тот? Softlink? Hardlink? Что-то еще?
Например, когда я
apt-get install vim;
Способность исказит /usr/local/bin/vi
как /usr/local/bin/vim
(если я вспоминаю правильно),
С технической точки зрения существует способ "исказить" приложения по умолчанию. С чем Вы встречаетесь sudo apt-get install vim
Система Альтернатив Debian.
В основном та система имеет список приложений по умолчанию в /etc/alternatives/
папка, которые являются символьными ссылками на любое приложение по умолчанию, которое Вы имеете. Перед установкой vim
Вы имеете vim.tiny
, так vi
получает symlinked к /etc/alternatives/vi
, который затем является symlinked к /usr/bin/vim.tiny
. После того как Вы получаете фактическое vim
, те символьные ссылки все обновляются для окончательного указания на vim
.
Конечно, через существует ручной путь sudo update-alternatives --config vi
. И конечно, нет ничего мешающего Вам создать Ваши собственные символьные ссылки там. Однако для программ, которые не собираются иметь много много различных реализаций, как screen
например, Вы могли просто оставить их в покое. При условии, что /usr/bin
находится в Вашем $PATH
переменная (которым это должно всегда быть), можно просто ввести myappname
и это будет работать.
Независимо от того, что Вы делаете, трудно не связываются .
Жесткие ссылки приводят к запутывающим проблемам, когда, например, Вы пытаетесь удалить файл, потому что, если Вы не помните удалять его дважды , это все еще там.
В случае программы, это может привести к трудному к отладке поведению, потому что программа может все еще быть найдена в местоположении жесткой ссылки. В зависимости от содержания PATH
переменная среды, это могло быть выполнено при различных обстоятельствах к тому, что имеет место теперь.
Жесткие ссылки похожи goto
с в программировании: похмелье с более старого времени, теперь рассмотренный вредным .