Depsolving для php-pecl-zip

У меня возникли проблемы с избавлением от моих деполяционных ошибок, и мне оставлено, чтобы понять это самостоятельно. Все началось, когда я захотел перейти с PHP 5.2 на PHP 5.3 (не дай бог), и мне сказали, что у нас есть всевозможные беспорядки зависимости, потому что у нас есть несколько пакетов PHP, и никто больше его не использует, поэтому, если бы я хотел это, я должен сделать это сам.

Мне удалось выяснить, как установить PHP 5.3, но только удалив все предыдущие версии PHP и сделав новую установку. Теперь код «мой» (кто-то ушел) опирается на PHPExcel, который полагается на php-pecl-zip, которого у меня, по-видимому, нет. Вот некоторые из моих попыток:

Установить с помощью PECL

# pecl install zip No releases available for package "pecl.php.net/zip" install failed 

Довольно точно, это связано с тем, что наши машины имеют очень строгие правила о том, с кем они могут поговорить. Поэтому я не могу получить доступ к пакету через PECL.

Установить с помощью YUM

 # yum install php-pecl-zip Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: php-pecl-zip x86_64 1.8.10-2.el5 epel 47 k Installing for dependencies: php-common x86_64 5.1.6-24.el5_4.5 updates 152 k 

Почему он хочет PHP версии 5.1, когда у меня есть 5.3?
Конечно, если я его отпущу, то это говорит:

 Transaction Check Error: file /etc/php.ini from install of php-common-5.1.6-24.el5_4.5.x86_64 conflicts with file from package php-5.3.24-7.x86_64 

И просто для проверки:

 # yum list php Installed Packages php.x86_64 5.3.24-7 installed 

Можем ли мы обойти это? Несколько попыток

 # yum install php-pecl-zip --skip-broken Transaction Check Error: file /etc/php.ini from install of php-common-5.1.6-24.el5_4.5.x86_64 conflicts with file from package php-5.3.24-7.x86_64 

Пропустить сломанный ничего не делает

 # yum install php-pecl-zip --skip-broken --exclude=php-common php-pecl-zip-1.8.10-2.el5.x86_64 from epel has depsolving problems --> Missing Dependency: php-api = 20041225 is needed by package php-pecl-zip-1.8.10-2.el5.x86_64 (epel) Packages skipped because of dependency problems: php-pecl-zip-1.8.10-2.el5.x86_64 from epel 

Исключение пакета не помогает

 # yum install php-pecl-zip --skip-broken --exclude=php-common --exclude=php-api php-pecl-zip-1.8.10-2.el5.x86_64 from epel has depsolving problems --> Missing Dependency: php-api = 20041225 is needed by package php-pecl-zip-1.8.10-2.el5.x86_64 (epel) Packages skipped because of dependency problems: php-pecl-zip-1.8.10-2.el5.x86_64 from epel 

Можем ли мы установить базовую зависимость?

 # yum install php-api Package php-common is obsoleted by lift-php, trying to install lift-php-5.3.24-10.x86_64 instead Resolving Dependencies --> Running transaction check ---> Package lift-php.x86_64 0:5.3.24-10 set to be updated --> Processing Conflict: lift-php conflicts php --> Finished Dependency Resolution lift-php-5.3.24-10.x86_64 from COMPANY-codex-released has depsolving problems --> lift-php conflicts with php Error: lift-php conflicts with php 

Здесь начинается цикл зависимости. Вы заметите, что у нас есть репозитории, выпущенные компанией COMPANY-codex, которые находятся в игре.

 # yum install php-api --skip-broken Package php-common is obsoleted by lift-php, trying to install lift-php-5.3.24-10.x86_64 instead Resolving Dependencies --> Running transaction check ---> Package lift-php.x86_64 0:5.3.24-10 set to be updated --> Processing Conflict: lift-php conflicts php --> Finished Dependency Resolution lift-php-5.3.24-10.x86_64 from COMPANY-codex-released has depsolving problems --> lift-php conflicts with php Packages skipped because of dependency problems: lift-php-5.3.24-10.x86_64 from COMPANY-codex-released 

Исключить лифтинг-php?

 # yum install php-api --exclude=lift-php ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: php-common x86_64 5.1.6-24.el5_4.5 updates 152 k 

Нет.

Поэтому я думаю, что YUM находится в цикле зависимостей.

Я также сделал некоторые глупые вещи, устанавливающие новое репо EPEL, но тогда yum не смог устранить любые зеркала, поэтому мне пришлось его удалить. Я не уверен, что это были симметричные действия.

В первый раз, когда я это сделал, мне также пришлось сделать yum install autoconf

Установить загруженный файл с помощью PEAR
Поэтому я пошел в http://pecl.php.net/package/zip и получил загрузку, scp'd до моей машины.

 # pear install -O /home/produser/zip-1.12.4.tgz PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20090626/php_zip.dll' - /usr/lib/php/20090626/php_zip.dll: cannot open shared object file: No such file or directory in Unknown on line 0 96 source files, building running: phpize Configuring for: PHP Api Version: 20090626 Zend Module Api No: 20090626 Zend Extension Api No: 220090626 building in /var/tmp/pear-build-rootZ3jpba/zip-1.12.4 running: /var/tmp/zip/configure checking for egrep... grep -E checking for a sed that does not truncate output... /bin/sed checking for cc... cc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether cc accepts -g... yes checking for cc option to accept ANSI C... none needed checking how to run the C preprocessor... cc -E checking for icc... no checking for suncc... no checking whether cc understands -c and -o together... yes checking for system library directory... lib checking if compiler supports -R... no checking if compiler supports -Wl,-rpath,... yes checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for PHP prefix... /usr checking for PHP includes... -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib checking for PHP extension directory... /usr/lib/php/20090626 checking for PHP installed headers prefix... /usr/include/php checking if debug is enabled... no checking if zts is enabled... no checking for re2c... no configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers. checking for gawk... gawk checking for zip archive read/writesupport... yes, shared checking for the location of libz... no checking pcre install prefix... no checking libzip... no checking for the location of zlib... configure: error: zip support requires ZLIB. Use --with-zlib-dir=<DIR> to specify prefix where ZLIB include and library are located ERROR: `/var/tmp/zip/configure' failed 

Итак, эти первые несколько предупреждений на самом деле новы. Никогда раньше их не видели. Возможно, это новое лидерство.

(EDIT: Я думаю, что эта ошибка запуска из-за того, что я зашел в /etc/php.ini и /etc/php.ini extension=php_zip.dll . Когда я прокомментирую эту строку, она уходит.)

Но zlib есть:

 # yum install zlib Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile Excluding Packages in global exclude list Finished Excluding Packages from CentOS-5 - Plus Finished Setting up Install Process Package zlib-1.2.3-3.x86_64 already installed and latest version Nothing to do 

РЕДАКТИРОВАТЬ:

 # rpm -ql zlib /usr/lib64/libz.so.1 /usr/lib64/libz.so.1.2.3 /usr/share/doc/zlib-1.2.3 /usr/share/doc/zlib-1.2.3/README # tar xzf zip-1.12.4.tgz # cd zip-1.12.4 # phpize # ./configure --with-zlib-dir=/usr/lib64/libz.so.1 configure: error: Can not find zlib headers under "/usr/lib64/libz.so.1" # ./configure --with-zlib-dir=/usr/lib64/libz.so.1.2.3 configure: error: Can not find zlib headers under "/usr/lib64/libz.so.1.2.3" # ./configure --with-zlib-dir=/usr/share/doc/zlib-1.2.3 #not that i expect this one to work configure: error: Can not find zlib headers under "/usr/share/doc/zlib-1.2.3" # ./configure --with-zlib-dir=/usr/share/doc/zlib-1.2.3/README #not that i expect this one to work configure: error: Can not find zlib headers under "/usr/share/doc/zlib-1.2.3/README" 

Поэтому, хотя менеджер пакетов говорит, что это место zlib, и я начал компилировать вещь вручную, она все равно не работает.

Переустановить zlib? Кажется, что нужно выполнить штраф

 # yum reinstall zlib Downloading Packages: zlib-1.2.3-3.x86_64.rpm | 51 kB 00:00 Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Erasing : zlib 1/2 Installing : zlib 1/2 Removed: zlib.x86_64 0:1.2.3-3 Installed: zlib.x86_64 0:1.2.3-3 Complete! 

РЕДАКТИРОВАТЬ
Спасибо этим парням: http://ubuntuforums.org/showthread.php?t=692704 Я понял, что мне нужно установить zlib-devel. И только для хорошей меры, чтобы удалить одно из моих предупреждений, я также сделал re2c.

 # yum install zlib-devel Success # pear install zip-1.12.4.tgz make: *** [php_zip.lo] Error 1 ERROR: `make' failed # yum install re2c Success # pear install zip-1.12.4.tgz ... creating libtool appending configuration tag "CXX" to libtool configure: creating ./config.status config.status: creating config.h running: make /bin/sh /var/tmp/pear-build-root4xHrWH/zip-1.12.4/libtool --mode=compile cc -I. -I/var/tmp/zip -DPHP_ATOM_INC -I/var/tmp/pear-build-root4xHrWH/zip-1.12.4/include -I/var/tmp/pear-build-root4xHrWH/zip-1.12.4/main -I/var/tmp/zip -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -I/var/tmp/zip/lib -DHAVE_CONFIG_H -g -O2 -c /var/tmp/zip/php_zip.c -o php_zip.lo mkdir .libs cc -I. -I/var/tmp/zip -DPHP_ATOM_INC -I/var/tmp/pear-build-root4xHrWH/zip-1.12.4/include -I/var/tmp/pear-build-root4xHrWH/zip-1.12.4/main -I/var/tmp/zip -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -I/var/tmp/zip/lib -DHAVE_CONFIG_H -g -O2 -c /var/tmp/zip/php_zip.c -fPIC -DPIC -o .libs/php_zip.o In file included from /var/tmp/zip/php_zip.c:30: /usr/include/php/ext/pcre/php_pcre.h:29:18: error: pcre.h: No such file or directory In file included from /var/tmp/zip/php_zip.c:30: /usr/include/php/ext/pcre/php_pcre.h:37: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token /usr/include/php/ext/pcre/php_pcre.h:38: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token /usr/include/php/ext/pcre/php_pcre.h:44: error: expected specifier-qualifier-list before 'pcre' /var/tmp/zip/php_zip.c: In function 'php_zip_pcre': /var/tmp/zip/php_zip.c:672: error: 'pcre' undeclared (first use in this function) /var/tmp/zip/php_zip.c:672: error: (Each undeclared identifier is reported only once /var/tmp/zip/php_zip.c:672: error: for each function it appears in.) /var/tmp/zip/php_zip.c:672: error: 're' undeclared (first use in this function) /var/tmp/zip/php_zip.c:673: error: 'pcre_extra' undeclared (first use in this function) make: *** [php_zip.lo] Error 1 ERROR: `make' failed 

РЕДАКТИРОВАТЬ
Теперь эти ребята ( http://www.linuxquestions.org/questions/linux-software-2/install-zip-extension-using-pear-840755/ ) говорят

 # yum install pcre-devel 

который для меня не работает, но

 # yum install COMPANY-pcre-devel 

работает отлично

 # pear install zip-1.12.4.tgz 

такая же ошибка.

РЕДАКТИРОВАТЬ
http://www.linuxquestions.org/questions/red-hat-31/rpm-error-cannot-create-sourcedir-165733/ http://rpm.pbone.net/index.php3/stat/26/dist/ 55 / размер / 571124 / имя / PCRE-6.6-2.el5_1.7.src.rpm

 # yum install rpm-build # rpmbuild --rebuild pcre-6.6-2.el5_1.7.src.rpm # manually downloaded this exact version of the rpm TONS of output, but the tests all passed, so it seems to have worked... # cd /usr/src/redhat/RPMS/x86_64 # rpm -ivh pcre-devel-6.6-2.7.x86_64.rpm # yum list installed | grep pcre pcre.x86_64 6.6-2.7 installed pcre-devel.x86_64 6.6-2.7 installed 

БУМ! Другая зависимость вниз.

 # cd dir/to/manually/uploaded/zip.tgz # pear install zip-1.12.4.tgz Build process completed successfully Installing '/usr/lib/php/20090626/zip.so' install ok: channel://pecl.php.net/zip-1.12.4 configuration option "php_ini" is not set to php.ini location You should add "extension=zip.so" to php.ini 

Да сэр.

 # vi /etc/php.ini add extension=zip.so 

  • Как перенаправить вывод программы в ZIP-файл?
  • Как закрепить отдельные файлы из разных каталогов в одной строке?
  • Как скопировать последний файл из одного каталога в другой?
  • Сценарий Bash для выбора файлов для zip / unzip
  • Команда для рекурсивного хеширования CRC (CRC32)
  • Выборочно извлекать файлы из .zip-архива из командной строки
  • Как узнать, сколько места займет несжатый почтовый индекс
  • Сжатие старых файлов журнала и переход в новый каталог
  • One Solution collect form web for “Depsolving для php-pecl-zip”

    • Не удалось получить доступ к серверам pecl с моего сервера, поэтому загрузите tarball из http://pecl.php.net/package/zip и вручную поместите его на сервер
    • yum install zlib-devel
    • yum install pcre-devel не работал для меня, поэтому мне пришлось перейти на http://rpm.pbone.net/index.php3/stat/26/dist/55/size/571124/name/pcre-6.6- 2.el5_1.7.src.rpm, чтобы получить точную версию RPM, указанную в моей деполяционной ошибке.
    • yum install rpm-build
    • scp pcre-6.6-2.el5_1.7.src.rpm на мой сервер
    • rpmbuild --rebuild pcre-6.6-2.el5_1.7.src.rpm
    • cd /usr/src/redhat/RPMS/x86_64
    • rpm -ivh pcre-devel-6.6-2.7.x86_64.rpm
    • yum list installed | grep pcre yum list installed | grep pcre чтобы увидеть, что он сработал
    • cd dir/to/manually/uploaded/zip.tgz
    • pear install zip-1.12.4.tgz
    • vi /etc/php.ini
    • добавить extension=zip.so в php.ini

    Полная информация и все ссылки на страницы приведены в описании и редактировании выше.

    Interesting Posts

    Прочитайте столбец из файла и добавьте конкретный столбец другого файла

    Параметр rsync для исключения частичных файлов

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

    Каков правильный способ сжать раздел LVM?

    Как избежать пробелов при использовании взаимодействия истории bash?

    Fedora теперь пытается подключиться к беспроводной сети при загрузке?

    повторное значение в CSV-файле

    Есть ли способ ссылаться на несколько файлов в каталоге без повторного набора всего пути?

    AppArmor: Возможно ли использование нескольких профилей для одного приложения (Firefox, Thunderbird)? Синтаксис?

    Локальная установка .rpms с использованием YUM

    Vim: если определенная версия, то не загружайте плагин

    Linux, GNU GCC, ld, скрипты версий и двоичный формат ELF. Как это работает?

    Как переключиться на команду редактирования в текстовом редакторе

    Башрик для виртуального терминала

    Изменение структуры файла журнала Linux, ненормальное (?) Поведение sed

    Linux и Unix - лучшая ОС в мире.