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-файл без использования zip-бинарного файла?
  • Как я могу заставить unzip / zip не создавать подкаталог, когда я его извлекаю?
  • Поиск строки в нескольких ZIP-файлах
  • команда zip нескольких каталогов в отдельные файлы zip
  • У меня есть список файлов - результат команды find, как я могу использовать его для zip / tar файлов и удалять исходные файлы
  • Почему tar не может извлекать .zip-файлы?
  • Команда для рекурсивного хеширования CRC (CRC32)
  • Как развернуть и распаковать файлы рекурсивно?
  • 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

    Нужен сценарий оболочки для копирования файлов с длинными именами и именами

    Как получить root внутри vi?

    Ubuntu 16.04 и синхронизированная папка

    Группа фиксации в сопоставлениях протокола xmodmap / core (XChangeKeyboardMapping ())

    CentOS7: удалить nvidia-x11-drv-340xx хочет удалить весь xorg

    Есть ли автообновляющий графический читатель текстовых файлов?

    Что означают цифры на странице руководства?

    Понимание того, почему в этом случае отправляются электронные письма DegradedArray

    Как скомпилировать драйвер во FreeBSD

    Прозрачный Ethernet через GRE не передает трафик

    Есть ли способ сохранить изменения в разных языках в Debian

    desktop: как включить режим сна с экрана блокировки?

    как копировать файлы с помощью TTY-файла с одного компьютера на другой, подключенного через ту же домашнюю сеть

    Есть ли графический интерфейс для службы управления услугами Solaris?

    Как узнать, какой драйвер Wi-Fi установлен?

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