インストール: libzip | zip圧縮の基本ライブラリー

プログラムでzip圧縮時に必要となるlibzipをソースコードからインストールする。
libzipはPHPのzip拡張機能の有効化に必要なライブラリーだ。
項目 | 説明 |
---|---|
配布元 | libzip |
リポジトリー | nih-at/libzip: A C library for reading, creating, and modifying zip archives. |
手順 | libzip/INSTALL.md at master · nih-at/libzip |
依存情報 | libzip/INSTALL.md at master · nih-at/libzip |
依存先 (必須) | |
依存先 (任意) | |
依存元 | PHP拡張機能 |
sh -eux <<-"EOT"
PKG=libzip VER=1.5.2 TAG=rel-$(echo $VER | sed 's/\./-/g' ) PKG_VER=$PKG${VER:+-$VER}
LOCAL=$([ $(id -u) = 0 ] && echo /usr/ || echo ~/.)local
J=$(grep -cs '^processor' /proc/cpuinfo || echo 2)
mkdir -p "$LOCAL/src"
cd "$LOCAL/src"
if command -v git >/dev/null; then
[ -e $PKG ] || git clone --depth 1 git://github.com/nih-at/libzip $PKG
cd $PKG
git fetch --depth 1 origin tag $TAG
git checkout -f $TAG
git clean -dfX
else
[ -e $PKG-$VER ] || wget https://libzip.org/download/$PKG_VER.tar.xz
tar -xf $PKG_VER.*
cd $PKG_VER
make -kj $J distclean clean || :
fi
cmake -D CMAKE_INSTALL_PREFIX="$LOCAL/stow/$PKG_VER" .
make -j $J
make -j $J check
make -j $J install
cd "$LOCAL/stow"
echo $PKG${VER:+-}[0-9]* | xargs -n 1 stow -D
stow $PKG_VER
EOT
日付 | バージョン | OS | 依存関係 |
---|---|---|---|
2019-04-28 | 1.5.2 | Ubuntu 18.04 | GNU Make 4.2.1, GCC 7.4.0, zlib-1.2.11, CMake 3.10.2, OpenSSL 1.1.1a |
make
実行時に以下のエラーが出た。
[ 41%] Building C object lib/CMakeFiles/zip.dir/zip_winzip_aes.c.o In file included from /home/senooken/.local/src/libzip/lib/zip_crypto_gnutls.h:40:0, from /home/senooken/.local/src/libzip/lib/zip_crypto.h:45, from /home/senooken/.local/src/libzip/lib/zip_crypto_gnutls.c:38: /usr/include/gnutls/crypto.h:35:10: error: unknown type name ‘gnutls_cipher_alggorithm_t’; did you mean ‘gnutls_cipher_hd_t’? gnutls_cipher_algorithm_t cipher, ^~~~~~~~~~~~~~~~~~~~~~~~~ gnutls_cipher_hd_t
どうやら,OSにインストールされているGnuTLSをみにいって,ヘッダーファイルが存在しないため,コンパイルエラーになっているようだ。
GnuTLSをインストールしてもいいのだが,今は必要ではないので,以下のようにcmake
実行時に-DENABLE_GNUTLS=OFF
を指定して,GnuTLSは使わないようにして,代わりにOpenSSLを使うことにして対応した。
cmake -D CMAKE_INSTALL_PREFIX="$LOCAL/stow/$PKG-$VER" -DENABLE_GNUTLS=OFF .
“インストール: libzip | zip圧縮の基本ライブラリー” に対して1件のコメントがあります。