Как установить, когда в доступе отказано / usr / local / bin /

5134
104078

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

wget http://www.drive5.com/muscle/downloads3.8.31/muscle3.8.31_i86linux64.tar.gz tar xzvf muscle3.8.31_i86linux64.tar.gz mv muscle3.8.31_i86linux64 /usr/local/bin/muscle chmod a+x /usr/local/bin/muscle 

Но в разрешении отказано /usr/local/bin/. Итак, я создал каталог с именем /home/users/me/muscleвместо /usr/local/bin/и продолжил шаги. Наконец, я добавил каталог к ​​пути.

Это не работает. Примечание: команда sudo запрашивает пароль, которого у меня нет.

-1
«Всякий раз, когда я запускаю свой код-скрипт, который использует мышцы», пожалуйста, [edit] и добавьте свой код-скрипт к вопросу. DavidPostill 6 лет назад 0
По замыслу, только root может писать в системные папки, пользователи имеют доступ только к своим пользовательским пространствам. В Debian и его производных sudo используется для временного получения повышенных привилегий. 6 лет назад 0
Команда sudo запрашивает пароль, которого у меня нет 104078 6 лет назад 0
@ 104078 Тогда вы не сможете установить программное обеспечение, и системный администратор, у которого есть права `sudo`, должен установить его для вас. JakeGould 6 лет назад 1
@JakeGould Если «установка программного обеспечения» означает просто запуск исполняемого файла, он не обязательно должен находиться в `/ usr / local / bin`, но также может быть` ~ / bin`, где не требуются права суперпользователя. slhck 6 лет назад 0
@ 104078 «это не сработало» не является достаточным описанием проблемы. Если мой ответ не решит вашу проблему, пожалуйста, покажите более подробную информацию: какие именно шаги вы предприняли? Какие ошибки вы получили? Как вы настроили свой `$ PATH`? slhck 6 лет назад 0
@slhck Правда. Двоичные файлы можно запускать из любого места ... Пока сам двоичный файл и все, что он делает, не ожидает, что он будет помещен в другое место. Многие программисты жестко кодируют пути в своем коде, и это может вас зацепить. JakeGould 6 лет назад 0

2 ответа на вопрос

3
slhck

Если вы не можете получить sudoправа со своим пользователем, вы не можете писать в /usr/local/bin. Однако это может даже не потребоваться, поскольку вы также можете устанавливать программы где-то еще и изменять $PATHпеременную среды, которая сообщает вашей оболочке, где она может найти исполняемые программы.

Итак, я создал каталог с именем /home/users/me/muscleвместо /usr/local/bin/и продолжил шаги. Наконец, я добавил каталог к ​​пути. Это не работает.

Рекомендуемое место, чтобы поместить свои собственные исполняемые файлы пользователей будет ~/bin, то есть /home/<username>/bin.

Поэтому скопируйте файл в ~/bin/muscle(создайте папку, если она не существует):

mkdir -p ~/bin mv muscle3.8.31_i86linux64 ~/bin/muscle chmod +x ~/bin/muscle 

Сохраните файл. Теперь вам нужно убедиться, что ваш каталог $PATHсодержит этот binкаталог.

Если существует файл с именем ~/.bash_profile, отредактируйте его или, если он не существует, просто создайте его и добавьте следующее:

PATH="$HOME/bin:$PATH" 

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

Когда вы сейчас echo $PATH, он должен содержать этот binкаталог. И когда вы бежите muscle, он должен найти это, потому что это в $PATH.

1
G-Man

У вашей учетной записи есть пароль? Если sudoпросит вас пароль, он спрашивает ваш пароль. Введите это и посмотрите, получите ли вы разрешение.