sudo: порт: команда не найдена

Недавно я удалил 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

person Ava    schedule 14.03.2012    source источник
comment
Я столкнулся с этой ошибкой в ​​командной строке при установке MongoDB для приложения Rails, поэтому я предполагаю, что некоторые другие также могут найти этот вопрос через поиск Google с теми же ключевыми словами. Все, что я сделал, это обновил XCode и установил MacPorts с macports.org, попробуйте это, прежде чем делать что-либо еще на этой странице.   -  person JGallardo    schedule 20.08.2013


Ответы (10)


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

person John Barraco    schedule 25.03.2012
comment
Я перезапустил свой терминал, и он снова ушел :-/ - person Ava; 26.03.2012
comment
что пропало, твой .профиль? Кстати, вы все еще можете использовать sudo в терминале? например, sudo ls? - person John Barraco; 26.03.2012
comment
порт. Мне приходится запускать source .profile каждый раз, когда я открываю терминал, чтобы он распознал порт. - person Ava; 26.03.2012
comment
похоже, что у вас все еще есть .bash_profile или .bash_login superuser.com /questions/366642/profile-not-loaded-osx-lion - person John Barraco; 26.03.2012
comment
Ссылка на решение больше не доступна. - person T04435; 20.12.2018
comment
Ссылка на решение больше недоступна. Вот почему решение должно быть размещено здесь, а не только ссылка. - person nisevi; 15.04.2019
comment
Зачем вообще удалять ~/.bash_profile или ~/.bash_*? Особенно, если вы потратили много времени на настройку вашего bash, вся эта конфигурация исчезнет мгновенно, и многие инструменты, которые вы используете ежедневно, исчезнут. - person milosmns; 25.05.2019
comment
Это далеко не решение, во-первых, вы удалите все данные bash вашего личного профиля, и это не значит, что это сработает, потому что проблема связана с путями системы, правильное решение предоставлено. от @Isis. - person Fabio William Conceição; 15.08.2019
comment
johnnywey.wordpress.com больше недоступен. - person Anhdevit; 28.12.2020

Во-первых, вам может потребоваться отредактировать PATH вашей системы.

sudo vi /etc/paths

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

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

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

person Isis    schedule 17.09.2013
comment
После долгих исследований .bash_profile оказалось, что мне просто нужно перезагрузить терминал после установки MacPorts. Спасибо за этот совет. - person Ila; 22.01.2014
comment
Это работает и для меня! Спасибо. Это должен быть правильный ответ. - person Felipe; 20.03.2014
comment
@Ila У меня сработала просто перезагрузка терминала. Спасибо за помощь :) - person NightFury; 22.05.2014
comment
Пожалуйста, помогите мне: Bounty: stackoverflow.com/ вопросы/39287906/ - person Bista; 06.09.2016
comment
Добавление этих двух строк и перезагрузка терминала — вот что, наконец, помогло после возни с .bash_profile и .profile. Все это было бесполезно, пока я не добавил opt/local/bin в etc/paths. - person pimmen; 25.08.2017
comment
Вы также можете добавить эту строку в /etc/manpaths: /opt/local/share/man - person GDP2; 24.04.2018
comment
Для справки, это помогло решить ту же проблему и на High Sierra. - person Dana Scheider; 08.07.2018
comment
Это настоящее решение, @Ava, пожалуйста, отметьте правильный ответ. - person Fabio William Conceição; 15.08.2019
comment
В некоторых случаях это может быть хорошим решением, но если у вас нет доступа к sudo и вы не установили mactools как таковой, боюсь, потребуется другое решение. - person demongolem; 05.12.2019

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

$ source ~/.profile
person Awalias    schedule 14.03.2012
comment
Как мне получить свой профиль? Как мне запустить эту команду, просто написав ее на терминале, вы получите source: no such file or directory: .profile - person Ava; 14.03.2012
comment
перейдите в свой пользовательский каталог с помощью cd $HOME, затем попробуйте - person Awalias; 14.03.2012
comment
Да, я пытаюсь оттуда только. - person Ava; 14.03.2012
comment
OP имеет .bash_profile, а не .profile. Переименуйте этот файл в ~/.profile и повторите попытку. - person Matt K; 19.03.2012
comment
Я переименовал его в .profile. Он отличается от ~/.profile? - person Ava; 19.03.2012
comment
Это то же самое ~/ это просто путь к каталогу пользователя (такой же как $HOME/ ) - person Awalias; 20.03.2012
comment
Пожалуйста, помогите мне: Bounty: stackoverflow.com/ вопросы/39287906/ - person Bista; 06.09.2016

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

$ vi ~/.profile

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

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

person Nuno Costa    schedule 04.10.2015
comment
Спасибо! Это единственное, что в итоге мне помогло. На самом деле у меня не было .profile, поэтому я создал его и добавил эту строку, и это сработало. - person Dan-Nolan; 22.05.2016

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

:/opt/local/bin:/opt/local/sbin
person Michael    schedule 15.03.2016
comment
Вы также можете установить MANPATH с помощью export MANPATH="/opt/local/share/man". Если вы хотите иметь доступ к MacPorts в оболочках без входа в систему, установите эти переменные в ~/.zshenv. - person GDP2; 20.04.2018

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

person James Holwell    schedule 14.03.2012
comment
У меня в папке bin только файлы(порт это файл) ➜ bin ls daemondo port portf portindex portmirror - person Ava; 14.03.2012
comment
Что вы получите, когда наберете `set | grep PATH' в терминал? - person James Holwell; 14.03.2012
comment
Двоичный файл (стандартный ввод) соответствует - person Ava; 14.03.2012
comment
Извините, не знаю, куда идти дальше. Это может помочь: willbryant.net/software/mac_os_x/paths - person James Holwell; 14.03.2012
comment
У меня нет папки path.d внутри etc. У меня внутри только макпорт. - person Ava; 14.03.2012
comment
на моем mac osx 10.8 нет папки /opt? - person pal4life; 21.12.2012

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

source ~/.bash_profile
person Ayoub    schedule 15.01.2015

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

person Matt K    schedule 19.03.2012
comment
Добавил выше. Он переименован. - person Ava; 19.03.2012

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

source ~/.profile

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

Затем откройте новое окно терминала и введите ports -v, вы должны увидеть вывод, который выглядит следующим образом:

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

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

person shabbirh    schedule 25.06.2013

может быть ситуация, когда ваша машина управляется 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/

person danielk    schedule 16.03.2016