Итак, похоже, что новая защита "System Integrity Protection" lockdown/usr (среди других каталогов) делает грушу и не имеет значения. Кто-нибудь нашел обходное решение, чтобы отключить его?
Установка pecl и pear на OS X 10.11 El Capitan, macOS 10.12 Sierra, macOS 10.13 High Sierra (<10.13.3)
Ответ 1
Там намного проще - нет необходимости отключать SIP или загружать собственную копию:
sudo php /usr/lib/php/install-pear-nozlib.phar -d /usr/local/lib/php -b /usr/local/bin
Ответ 2
Вы не должны устанавливать двоичные файлы в system /usr
, вместо этого используйте /usr/local
.
pecl
и pear
должны поставляться вместе с PHP при установке через Homebrew.
Вот пример установки PHP с последней версией Homebrew:
brew install php
или конкретная версия:
brew install [email protected]
brew install [email protected]
Чтобы найти команды pecl
и pear
, выполните:
find -L "$(brew --prefix php)" -name pecl -o -name pear
или же:
find -L "$(brew --prefix [email protected])" -name pecl -o -name pear
Если у вас его нет, рассмотрите возможность удаления предыдущей версии PHP или вместо этого запустите reinstall
.
Вы также можете попытаться заново связать его:
brew unlink [email protected] && brew link [email protected] --dry-run && brew link --overwrite --force [email protected]
В противном случае, свяжите это вручную:
ln -vs "$(find -L "$(brew --prefix [email protected])/bin" -name pecl)" /usr/local/bin
ln -vs "$(find -L "$(brew --prefix [email protected])/bin" -name pear)" /usr/local/bin
В качестве альтернативы скачайте Pear прямо как пакет Phar:
curl -o /usr/local/bin/pear http://pear.php.net/go-pear.phar
chmod +x /usr/local/bin/pear
или со следующим однострочником (будет работать в Linux, но не в Unix):
curl -sL http://pear.php.net/go-pear.phar | sudo install -v -m755 /dev/stdin /usr/local/bin/pear
Ответ 3
По этой ссылке: http://jason.pureconcepts.net/2012/10/install-pear-pecl-mac-os-x/ С помощью этих инструкций вам не нужно отключать "Защита целостности системы"
Следующие инструкции устанавливают PEAR и PECL на Mac OS X в /usr/local/. PECL в комплекте с грушей. Так что это так же просто, как установить PEAR на Mac OS X.
PEAR является репозиторием пакетов PHPs и позволяет легко загружать и устанавливать инструменты PHP, такие как PHPUnit и XDebug. Я специально рекомендую эти два для каждого разработчика PHP.
Скачать PEAR
curl -O https://pear.php.net/go-pear.phar sudo php -d detect_unicode=0 go-pear.phar
Сконфигурируйте и установите PEAR
Теперь вы должны быть в состоянии настроить PEAR.
- Введите 1 и нажмите return.
Войти:
/usr/local/pear
Введите 4 и нажмите return.
Войти:
/usr/local/bin
Нажмите return
Проверьте грушу.
Вы должны быть в состоянии напечатать:
pear version
В конце концов, если вы используете какие-либо расширения или приложения из PEAR, вам может потребоваться обновить путь к PHP.
Ответ 4
На Mohave мне пришлось запустить следующие команды - спасибо, перейдите на https://tobschall.de/2018/08/07/pear-on-mojave/
cd /tmp
curl -s -O https://pear.php.net/install-pear-nozlib.phar
sudo php install-pear-nozlib.phar -d /usr/local/lib/php -b /usr/local/bin
Ответ 5
Добавьте суффикс --with-pear
для установки груши и pecl
См пример ниже
brew install php --with-pear
brew reinstall php --with-pear
Ответ 6
Здесь приведена ссылка на статью Macworld, в которой описывается, как включить или отключить защиту целостности системы.
Ответ 7
Это работало для меня как MacOS Sierra 10.12.1 для обновления PHP, установки PEAR и V8
brew tap homebrew/dupes
brew tap homebrew/versions
brew tap homebrew/homebrew-php
phpversion="$(php -v | tail -r | tail -n 1 | cut -d " " -f 2 | cut -c 1,3)"
brew unlink php$phpversion
brew install php71
brew install autoconf
curl -O http://pear.php.net/go-pear.phar
php -d detect_unicode=0 go-pear.phar
echo -e "\nexport PATH=$HOME/pear/bin:$PATH \n"
source ~/.bash_profile
echo -e "\ninclude_path = '.:/Users/YOURUSERNAME/pear/share/pear/' \nextension=v8js.so \n" >> /usr/local/etc/php/7.1/php.ini
git clone https://github.com/phpv8/v8js ~/tmp/v8js && cd $_
./configure CXXFLAGS="-Wno-c++11-narrowing"
make
make test
make install
sudo apachectl restart
Ответ 8
Высокая Сьерра установка:
- установить Brew
- установить PHP с Brew
Есть предустановленный грушевый пакет в
/usr/local/opt/[email protected]<your_version>/bin
оттуда вы можете бежать
pecl install xdebug
и у вас должен быть рабочий бинарный PHP с Xdebug.
Ответ 9
Когда варка используется и не связана, используйте:
brew install [email protected]
brew unlink [email protected]
$(brew --prefix [email protected])/bin/pecl
$(brew --prefix [email protected])/bin/pear
Ответ 10
Для MacOS Mojave 10.14.4 просто используйте /local вместо /usr, когда вас спрашивают о расположении "База установки ($ prefix)".