- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 pecl 安装 zipArchive。运行命令后,我收到错误 - “请重新安装 libzip 发行版”。
我在 Amazon Linux 2 上运行 PHP 7.2。
这是我的输出:
$ ./pecl install zip
WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-update pecl.php.net" to update
downloading zip-1.15.2.tgz ...
Starting to download zip-1.15.2.tgz (249,280 bytes)
....................................................done: 249,280 bytes
8 source files, building
running: phpize
Configuring for:
PHP Api Version: 20170718
Zend Module Api No: 20170718
Zend Extension Api No: 320170718
building in /tmp/pear/install/pear-build-ec2-userIZcX1f/zip-1.15.2
running: /tmp/pear/install/zip/configure --with-php-config=/usr/bin/php-config
checking for grep that handles long lines and -e... /usr/bin/grep
...<snip up to warning>...
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 libzip... yes
checking PHP version... PHP 7.x
checking for pkg-config... /usr/bin/pkg-config
checking for libzip... not found
configure: error: Please reinstall the libzip distribution
ERROR: `/tmp/pear/install/zip/configure --with-php-config=/usr/bin/php-config' failed
但是如果我检查 libzip 它已经安装了:
$ sudo yum install libzip
Loaded plugins: langpacks, priorities, update-motd
amzn2-core | 2.0 kB 00:00:00
Package libzip-0.10.1-8.amzn2.x86_64 already installed and latest version
Nothing to do
我正在使用 ./pecl,因为我必须从我的主目录安装新版本的 pear,而旧版本仍在路径中。这是我用来获取 pear 更新版本的命令。
$ wget http://pear.php.net/go-pear.phar
$ php go-pear.phar
不知道这有什么区别吗?我的 php.ini 中确实有正确的版本:
;***** Added by go-pear
include_path=".:/home/ec2-user/pear/share/pear"
;*****
感谢任何帮助。
最佳答案
我已经成功编译了 PECL zip(部分原因是英国的雪取消了我预订的日子!)。我还没有在 php 中对此进行测试,但它可以正确加载到 phpinfo();
选项 1:更新 Libzip 并祝愿一切顺利
我使用了外部 CentOS-7 存储库(amzn linux 2 应该与之非常兼容)和以下脚本:
#PECL requires libzip 11 - get it from a foreign repo
sudo rpm --import http://wiki.psychotic.ninja/RPM-GPG-KEY-psychotic
#this looks wrong but the repo uses a single release
sudo rpm -ivh http://packages.psychotic.ninja/6/base/i386/RPMS/psychotic-release-1.0.0-1.el6.psychotic.noarch.rpm
#YUM REPO HACKS START
#unfortunately amazon-linux-2 release numbering breaks it - force RHEL 7 numbering
sudo sed -i s/\$releasever/7/g /etc/yum.repos.d/psychotic.repo
#Need to exclude outdated amzn zip packages
sudo yum remove libzip libzip-devel
#check for an exclude line, add our one if not present (to the main repo)
grep -A 100 -m1 "\[amzn2-core" /etc/yum.repos.d/amzn2-core.repo | grep exclude= || sudo sed -i -E "s/($(grep -A 100 -m1 "\[amzn2-core" /etc/yum.repos.d/amzn2-core.repo | grep -m1 ^name=)$)/\1\nexclude=libzip libzip-devel/" /etc/yum.repos.d/amzn2-core.repo
#check this worked, if not modify the existing exclude line(s)
grep -A 100 -m1 "\[amzn2-core" /etc/yum.repos.d/amzn2-core.repo | grep "exclude=.*libzip" || sudo sed -i -E "s/exclude=/exclude=libzip libzip-devel /" /etc/yum.repos.d/amzn2-core.repo
#YUM REPO HACKS END
sudo yum install --enablerepo=psychotic-plus gcc libzip libzip-devel
#now install PECL
wget http://pear.php.net/go-pear.phar
sudo php go-pear.phar
#patch it to cope with the XML being a module
sudo sed -i "$ s|\-n||g" /usr/bin/pecl
#and this should now work
sudo pecl install zip
#may still need to manually add to the php.ini
grep "^extension=zip.so" /etc/php.ini || echo "extension=zip.so" | sudo tee -a /etc/php.ini
要非常小心这个脚本中标记为“YUM REPO HACKS”的部分 - 它故意包含用于修改您的存储库配置的命令,这些命令经过了最少的测试。它实际上所做的就是用“7”替换 pyschotic 存储库中的“$releasever”变量,并将“exclude=libzip libzip-devel”添加到 amzn2-core 存储库中。你可以用 vim 做到这一点!
选项 2:2 个版本的 libzip
根据我的研究:如果您对服务器上的“found-by-google”存储库不满意(我不怪您,取决于用例),那么您可以保留 amzn zip,使用他们的源存储库来安装 libzip 11.2 源,将其(和/或其库)安装到备用位置(在其他位置找到相关说明)并手动编译 php 模块。
手动编译 zip:
$ pecl download zip
$ tar -xf zip-*.tgz && cd zip-* && phpize
$ ./configure --with-libzip=/path/to/secondary/libzip
...等等
关于php - 未找到 PECL libzip,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48890287/
我目前在 C++11 程序中使用 libzip 来提取压缩文件的内容并将它们存储到一个数据结构中,该数据结构还将保存与该文件相关的元数据。 我正在使用当前方法解压 zip 文件并获取其中每个文件的内容
我使用 libzip 以 native 代码读取 APK 内容。 assets/sounds/voice 文件夹仅针对 libzip 函数“消失”。 libzip 仍然可以看到其他文件。 我仍然可以在
我正在尝试使用 pecl 安装 zipArchive。运行命令后,我收到错误 - “请重新安装 libzip 发行版”。 我在 Amazon Linux 2 上运行 PHP 7.2。 这是我的输出:
我正在尝试使用 pecl 安装 zipArchive。运行命令后,我收到错误 - “请重新安装 libzip 发行版”。 我在 Amazon Linux 2 上运行 PHP 7.2。 这是我的输出:
我正在尝试使用 c++ 和 libzip 库解压缩一个可执行文件。从罗德里戈对类似问题的回答开始,我来到了这个示例代码: #include int main() { //Open the Z
我有一个用另一个应用程序(用 Java 编写)创建的 zip 文件,它使用 deflate 方法将文件压缩到一个 zip 文件中,我验证了像“上次修改”这样的信息没有修改到当前日期,并且在解压缩时Ub
我需要创建一个应用程序来从 zip 存档中提取一个文件,之后我想为 Android 编译它。 我使用的是 Ubuntu,预装了 libzip-0.10.1。我在 Eclipse 中创建了 C 项目,添
我今天开始使用 libzip 库。但是我不明白libzip的工作原理。 我的重点是压缩一个包含所有文件和目录的目录 压缩成 zip 文件。 因此,我从zip_open()开始,然后读取目录 内容并使用
开始使用 libzip ,我尝试创建一个存档并向其中添加一个文件。这是我的代码。 string archive = "path/to/archive.zip"; string file =
我在使用 libzip 时遇到问题。我在 linux 上并使用 sudo apt-get install libzip2 libzip-dev 安装了库(所以它不是最新版本)。 这是我的代码: #in
我今天开始学习 libzip 一切都很顺利,只是我无法让 zip_name_locate 工作,而且我找不到任何解释它的教程/示例/文档(虽然文档有,但我找不到让它工作)。 Documentation
由于兼容性问题,我使用的是相当旧的 libzip 版本 (0.10.1-1.2)。 通常我们通过统计结果来检查文件类型(符号链接(symbolic link)、目录、文件等)。类似地,在 libzip
我正在使用 switch 语句来检查我正在创建的 libzip zip 存档中错误代码的值。但是,它似乎永远不会返回 0 以外的任何内容,即使我故意导致它失败也是如此。 (我试图将文件复制到 100%
目前,我在我的 xcode 项目中包含了一个外部库。我已经在我的项目中手动包含了这些库,所以我能够获得所有的库函数。没有任何编译时错误,但是当我运行时,我得到了 runtime error 有点像下面
我正在学习 C++,我决定制作一个压缩/解压缩文件的小程序来训练我。我下载了libzip和 zlib 并将它们链接到我的编译器(MinGW with Code::Blocks on Windows)。
我的 JVM 一直在 libzip.so 处持续不断地意外崩溃。我已经向 Oracle 提交了这个错误,但决定看看这里是否有人遇到过这个问题,如果有,你是如何处理的?这是一个正在运行的网络应用程序 L
我在 Linux 的 C++ 应用程序中使用 libzip,它需要能够压缩/解压缩包含符号链接(symbolic link)的目录。我想添加链接本身而不关注它。使用 readlink() 读取链接并将
我使用 libzip 处理 zip 文件并且一切正常,直到我需要从 zip 读取文件我只需要读取整个文本文件,所以实现类似 PHP 的“file_get_contents”功能会很棒。 要从 zip
我正在使用 libzip 以将一个 zip 中的文件从另一个 zip 移动。因此,我首先使用 zip_source_zip 从我的 zip 中的文件创建 zip_source,然后使用 zip_add
我正在使用标题 zip.hpp(可以在此处找到 https://markand.bitbucket.io/libzip/index.html 或此处 http://hg.markand.fr/libz
我是一名优秀的程序员,十分优秀!