2014-10-06 17 views
5
[[email protected]:/var/www/mailinglist]$ composer.phar install 
Loading composer repositories with package information 
Installing dependencies (including require-dev) 
Your requirements could not be resolved to an installable set of packages. 

    Problem 1 
    - Installation request for cakephp/cakephp 3.0.*-dev -> satisfiable by cakephp/cakephp[3.0.x-dev]. 
    - cakephp/cakephp 3.0.x-dev requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system. 
    Problem 2 
    - cakephp/cakephp 3.0.x-dev requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system. 
    - cakephp/debug_kit 3.0.x-dev requires cakephp/cakephp 3.0.*-dev -> satisfiable by cakephp/cakephp[3.0.x-dev]. 
    - Installation request for cakephp/debug_kit 3.0.*-dev -> satisfiable by cakephp/debug_kit[3.0.x-dev]. 

Odpowiedz

22

Spróbuj

sudo apt-get install mcrypt php5-mcrypt 
sudo php5enmod mcrypt 

na Ubuntu 13.10 i później jest problem dla migracji konfiguracji modułów php z /etc/php5/conf.d to /etc/php5/mods-available

Jeśli nie rozwiąże zweryfikować mcrypt bibliotekę

updatedb 
locate mcrypt.so 
locate mcrypt.ini 
+1

Dzięki Luigi, biblioteka została zainstalowana, ale nie uruchomiłem sudo php5enmod mcrypt, jak nigdy wcześniej, i rozwiązał problem dla mnie. – Vaughany

19

Dla przypomnienia, ponieważ nie znalazłem rozwiązania nigdzie dla Arch Linux: Jeśli używasz kompozytora z dodatkowego repozytorium (extra/php-composer), to w rzeczywistości nie wystarczy włączyć rozszerzenie mcrypt w /etc/php/php.ini, ponieważ globalny skrypt kompozytora wykorzystuje własne ini-file (/usr/share/php-composer/php.ini).

Aby naprawić błąd mcrypt, możesz:

  • Włącz rozszerzenia mcrypt globalnie i uruchomić kompozytora korzystając php /usr/bin/composer.
  • Dodaj rozszerzenie mcrypt do /usr/share/php-composer/php.ini i zapobiec Pacman z zastąpieniem zmiany poprzez dodanie NoUpgrade = usr/share/php-composer/php.ini do /etc/pacman/pacman.conf.
+0

Wykonywanie 'php/usr/bin/composer' daje mi' PHP Błąd krytyczny: Klasa 'Phar' nie występuje w/usr/bin/composer na linii 23' error. Drugie rozwiązanie wydaje się działać. Jakieś pomysły na temat tego, co dzieje się nie tak z pierwszym? – prakharsingh95

+1

sprawdź, czy rozszerzenie phar jest włączone globalnie: '$ grep phar/etc/php/php.ini' =>' extension = phar.so' – maetthu

+0

Tak, 'phar' został wyłączony. Sprawdziłem to wcześniej i nie trafiłem! Dzięki! – prakharsingh95

2

Miałem ten problem, gdy próbowałem zainstalować laravel z kompozytorem na moim Yosemite MAC. To był komunikat o błędzie dostałem od terminalu:

laravel/framework v5.0.16 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.

I przestrzegać tych instrukcji, aby zainstalować mcrypt na moim Mac: http://coolestguidesontheplanet.com/install-mcrypt-php-mac-osx-10-10-yosemite-development-server/ I że problem został rozwiązany

2

Kompozytor blokował mój instalację CakePHP ponieważ zależność od mcrypt, pomimo faktu, że mcrypt został zainstalowany i działa w mojej konfiguracji php.

W końcu zdałem sobie sprawę, że Composer sprawdzał tryb cli php i rozwiązałem tę zależność, po prostu kopiując plik mcrypt.ini z /etc/php5/conf.d do /etc/php5/cli/conf.d.