Команда sudo: port: не найдена - PullRequest
       108

Команда sudo: port: не найдена

57 голосов
/ 14 марта 2012

Я недавно удалил Xcode 4.2 и переустановил Xcode 4.3.1.Инструменты командной строки установлены.Затем я установил MacPort, используя образы дисков «dmg» для Lion с macports.org.С тех пор, как я получал sudo: port: command not found после каждого использования порта, я следовал за этим и этим сообщением , чтобы создать файл .bash_profile (ранее не присутствовал), а затем вставил вэто следующее, но безрезультатно.

export PATH=$PATH:/opt/local/bin
export MANPATH=$MANPATH:/opt/local/share/man
export INFOPATH=$INFOPATH:/opt/local/share/info 

После это сообщение

➜  ~ git:(master) ✗ rvm install 1.8.7 --with-openssl-dir=/opt/local
You requested building with '/usr/bin/gcc-4.2' but it is not in your path.
➜  ~ git:(master) ✗ vi .rvmrc 

rvm_archflags="-arch x86_64"

export CC="/usr/bin/gcc-4.2"

export CFLAGS="-O2 -arch x86_64"
export LDFLAGS="-L/opt/local/lib"
export CPPFLAGS="-I/opt/local/include"

Переименование .bash_profile в .profile

➜  ~ git:(master) ✗ vi .bash_profile
➜  ~ git:(master) ✗ mv .bash_profile .profile
➜  ~ git:(master) ✗ mv .profile              
usage: mv [-f | -i | -n] [-v] source target
       mv [-f | -i | -n] [-v] source ... directory
➜  ~ git:(master) ✗ mv -f .bash_profile .profile
mv: rename .bash_profile to .profile: No such file or directory
➜  ~ git:(master) ✗ port
zsh: correct 'port' to 'pr' [nyae]? n
zsh: command not found: port
➜  ~ git:(master) ✗ which port
port not found
➜  ~ git:(master) ✗ 

.profile содержание:

export PATH=$PATH:/opt/local/bin
export MANPATH=$MANPATH:/opt/local/share/man
export INFOPATH=$INFOPATH:/opt/local/share/info

Ответы [ 10 ]

123 голосов
/ 17 сентября 2013

Во-первых, вам может понадобиться отредактировать ПУТЬ вашей системы

sudo vi /etc/paths

Добавьте 2 следующие строки:

/opt/local/bin
/opt/local/sbin

Перезагрузите терминал

21 голосов
/ 26 марта 2012

Обязательно удалите ~ / .bash_profile и ~ / .bash_login, чтобы .profile мог работать. Это сработало для меня http://johnnywey.wordpress.com/2008/04/17/fixing-bash-profile-in-os-x/

18 голосов
/ 14 марта 2012

Вы можете попытаться получить исходный файл своего профиля для обновления вашей среды:

$ source ~/.profile
16 голосов
/ 04 октября 2015

Я нашел ответ на официальном сайте

$ vi ~/.profile

# add the following line
export PATH=/opt/local/bin:/opt/local/sbin:$PATH

А теперь перезапустите терминал или наберите source !$ (эквивалентно source ~/.profile)

15 голосов
/ 15 марта 2016

если вы используете zsh.please добавьте текущую строку в строку 'export PATH = "..."' в файле '~ / .zshrc'

:/opt/local/bin:/opt/local/sbin
8 голосов
/ 14 марта 2012

На моей машине порт находится в /opt/local/bin/port - попробуйте ввести его в терминал самостоятельно.

5 голосов
/ 15 января 2015

Если вы только что установили macports просто беги и все должно работать

source ~/.bash_profile
1 голос
/ 25 июня 2013

Вы можете просто добавить строку:

source ~/.profile

В конец вашего rc-файла оболочки - если вы используете bash, то это будет ваш ~ / .bash_profile, если вы используете zsh, это будетбыть вашим ~ / .zshrc

Затем откройте новое окно терминала и введите порты -v, вы должны увидеть вывод, похожий на следующий:

~ [ port -v                                                                                                              ] 12:12 pm
MacPorts 2.1.3
Entering interactive mode... ("help" for help, "quit" to quit)
[Users/sh] > quit
Goodbye

Надеюсь, это поможет.

1 голос
/ 19 марта 2012

Что вы получаете от запуска which port в качестве учетной записи обычного пользователя?Попробуйте это из недавно открытого терминала.Повторите попытку после переименования .bash_profile в .profile.Можете ли вы запустить port как обычный пользователь, даже без аргументов?

0 голосов
/ 16 марта 2016

может быть ситуация, когда ваша машина управляется Puppet или около того. Тогда изменение корневого файла .profile или .bash_rc не работает вообще. Поэтому вы можете добавить следующее в ваш файл .profile. После этого вы можете использовать «mydo» вместо «sudo». У меня отлично работает.

function mydo() {
    echo Executing sudo with: "$1" "${@:2}"
    sudo $(which $1) "${@:2}"
}

Посетите мою страницу: http://www.danielkoitzsch.de/blog/2016/03/16/sudo-returns-xyz-command-not-found/

...