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

GNOME Terminal

プログラムで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
依存先 (必須)
依存先 (任意)
  • テスト用: Perl
  • bzip2圧縮対応: bzip2
  • AES対応: Apple’s CommonCrypto, GnuTLS, mbed TLS, OpenSSL 1.0+, Microsoft Windows Cryptography Frameworkのどれか
依存元 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件のコメントがあります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です