Я только что установил Apache через MacPorts. Похоже, мой Mac был совершенно сбит с толку тем, какую версию исполняемых файлов Apache запустить.

После перемещения исполняемых файлов Apache, поставляемых вместе с Mac, в каталог, который не указан в переменной PATH , попытка запустить httpd созданный MacPorts, завершается неудачей, даже если в каталоге указан правильный каталог (/opt/local/apache2/bin). Переменная PATH

Если я перехожу в каталог /opt/local/apache2/bin и набираю команду httpd я все равно получаю сообщение об ошибке

-bash: httpd: команда не найдена

Если я наберу команду с полным путем /opt/local/apache2/bin/httpd она будет работать нормально.

Я запустил alias команды, чтобы увидеть, не конфликтует ли что-то, но единственное в списке:

alias wget='curl -O'

Как мне найти то, что перехватывает команду и предотвращает нахождение исполняемого файла в каталоге, даже когда я нахожусь в том же каталоге?

Кстати, файл httpd является исполняемым:

-rwxr-xr-x  1 root      admin  442496  9 May  2012 httpd

1 ответ1

2

Просто. Текущий каталог никогда не принадлежит PATH . По этой причине, даже если вы находитесь в /opt/local/apache2/bin , вы не можете просто набрать httpd потому что Bash будет искать только ваш PATH .

Таким образом, поэтому вы должны будете напечатать ./httpd здесь.

Чтобы заставить Bash искать исполняемые файлы в каталоге MacPorts Apache, добавьте в ваш ~/.bash_profile:

export PATH=/opt/local/apache2/bin:$PATH

Это также приведет к тому, что двоичные файлы из этого каталога будут иметь приоритет над любыми другими двоичными файлами с тем же именем, которое может появиться позже в PATH отметьте это с помощью which -a httpd .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .