судо:порт:команда не найдена
-
13-12-2019 - |
Вопрос
Недавно я удалил 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
Решение
Обязательно удалите ~/.bash_profile и ~/.bash_login, чтобы .profile мог работать.У меня это сработало http://johnnywey.wordpress.com/2008/04/17/fixing-bash-profile-in-os-x/
Другие советы
Во-первых, вам, возможно, потребуется отредактировать путь к вашей системе
sudo vi /etc/paths
Добавьте 2 следующие строки:
/opt/local/bin
/opt/local/sbin
Перезагрузите свой терминал
Вы могли бы попробовать создать исходный файл своего профиля, чтобы обновить свою среду:
$ source ~/.profile
Я нашел ответ в официальный сайт
$ vi ~/.profile
# add the following line
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
А теперь перезагрузите терминал или введите source !$
(эквивалентно source ~/.profile
)
если вы используете zsh.пожалуйста, добавьте текущую строку в строку 'путь экспорта="..."' в файле '~/.zshrc'
:/opt/local/bin:/opt/local/sbin
На моем компьютере порт находится в /opt/local/bin/port
- попробуйте ввести это в терминал самостоятельно.
Если вы только что установили macports просто запустите, и это должно сработать
source ~/.bash_profile
Что вы получаете от бега which port
как ваша обычная учетная запись пользователя?Попробуйте это сделать со свежеоткрытого терминала.Повторите попытку после переименования .bash_profile
к .profile
.Ты можешь бежать port
как обычный пользователь, даже без каких-либо аргументов?
Вы можете довольно просто добавить строку:
source ~/.profile
В нижней части вашего файла shell 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
Надеюсь, это поможет.
может возникнуть ситуация, когда вашей машиной управляет Puppet или что-то в этом роде.Тогда изменение файла root .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/