cpanでupdateすると以下のメッセージが出て、Alien::SVNモジュールのアップデートに失敗する。"The Apache Portable Runtime (APR) library cannot be found. "といわれてインストールに失敗する。
CPAN.pm: Going to build M/MS/MSCHWERN/Alien-SVN-v1.6.12.1.tar.gz Created MYMETA.yml and MYMETA.json Creating new 'Build' script for 'Alien-SVN' version 'v1.6.12.1' --------------------------------------------------------------------- This module will build Subversion and install it's libraries and Perl bindings for you. It requires a C compiler and make. Which make should I use to build Subversion? [make ]make Run Subversion's configure now? [y ]y Would you like to pass any arguments to configure? [--libdir=/usr/local/lib/perl/5.10.1/Alien/SVN --prefix=/usr/local PERL=/usr/bin/perl ]--libdir=/usr/local/lib/perl/5.1 0.1/Alien/SVN --prefix=/usr/local PERL=/usr/bin/perl Subversion will now be configured. Running sh configure --libdir=/usr/local/lib/perl/5.10.1/Alien/SVN --prefix=/usr/local PERL=/usr/bin/perl configure: Configuring Subversion 1.6.12 configure: creating config.nice checking for gcc... gcc 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 gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking how to run the C preprocessor... gcc -E checking for a sed that does not truncate output... /bin/sed checking build system type... i686-pc-linux-gnu checking host system type... i686-pc-linux-gnu checking target system type... i686-pc-linux-gnu checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking whether ln -s works... yes checking for a BSD-compatible install... /usr/bin/install -c configure: Apache Portable Runtime (APR) library configuration checking for APR... no configure: WARNING: APR not found The Apache Portable Runtime (APR) library cannot be found. Please install APR on this system and supply the appropriate --with-apr option to 'configure' or get it with SVN and put it in a subdirectory of this source: svn co \ http://svn.apache.org/repos/asf/apr/apr/branches/1.2.x \ apr Run that right here in the top level of the Subversion tree. Afterwards, run apr/buildconf in that subdirectory and then run configure again here. Whichever of the above you do, you probably need to do something similar for apr-util, either providing both --with-apr and --with-apr-util to 'configure', or getting both from SVN with: svn co \ http://svn.apache.org/repos/asf/apr/apr-util/branches/1.2.x \ apr-util configure: error: no suitable apr found configuring SVN failed at inc/My/SVN/Builder.pm line 109, <STDIN> line 3. Something went wrong with the Subversion configuration. You should correct it and re-run Build.PL. Building Alien-SVN Running make make: *** No targets specified and no makefile found. Stop. building subversion failed at inc/My/SVN/Builder.pm line 122. MSCHWERN/Alien-SVN-v1.6.12.1.tar.gz ./Build -- OK Running Build test Running make make: *** No targets specified and no makefile found. Stop. building subversion failed at inc/My/SVN/Builder.pm line 122. No such file or directory at inc/My/SVN/Builder.pm line 21. MSCHWERN/Alien-SVN-v1.6.12.1.tar.gz ./Build test -- NOT OK //hint// to see the cpan-testers results for installing this module, try: reports MSCHWERN/Alien-SVN-v1.6.12.1.tar.gz Running Build install make test had returned bad status, won't install without force
まずは以下のようにaprを検索してみる。それらしいパッケージがヒットするし、libapr1とlibaprutil1は導入済みである。これらのパッケージが導入された理由を探すと、subversionをインストールした際に芋づる式に導入されたようだ。インストールできないperlパッケージの説明を参照すると" Perl bindings for subversion"と書いてあるのでなんとなくこれの開発ヘッダを導入すればよいような雰囲気。つまり、libapr1-devとlibaprutil1-devである。
# aptitude search apr p aprsd - Internet Gateway for the Automatic Position Reporting System p aprsdigi - digipeater for APRS p haproxy - fast and reliable load balancing reverse proxy p imaprowl - IMAP new mail notification utility for iPhone using Prowl Public API p libapache2-mod-apreq2 - generic Apache request library - Apache module i A libapr1 - The Apache Portable Runtime Library p libapr1-dbg - The Apache Portable Runtime Library - Debugging Symbols p libapr1-dev - The Apache Portable Runtime Library - Development Headers p libapreq2 - generic Apache request library p libapreq2-dev - generic Apache request library - development files p libapreq2-doc - generic Apache request library - documentation p libapron - runtime libraries for APRON p libapron-dev - an abstract interpretation library p libapron-ocaml - runtime libraries for APRON (OCaml interface) v libapron-ocaml-18ls6 - p libapron-ocaml-dev - an abstract interpretation library (OCaml interface) v libapron-ocaml-dev-18ls6 - i A libaprutil1 - The Apache Portable Runtime Utility Library p libaprutil1-dbd-freetds - The Apache Portable Runtime Utility Library - FreeTDS Driver p libaprutil1-dbd-mysql - The Apache Portable Runtime Utility Library - MySQL Driver p libaprutil1-dbd-odbc - The Apache Portable Runtime Utility Library - ODBC Driver p libaprutil1-dbd-pgsql - The Apache Portable Runtime Utility Library - PostgreSQL Driver p libaprutil1-dbd-sqlite3 - The Apache Portable Runtime Utility Library - SQLite3 Driver p libaprutil1-dbg - The Apache Portable Runtime Utility Library - Debugging Symbols p libaprutil1-dev - The Apache Portable Runtime Utility Library - Development Headers p libaprutil1-ldap - The Apache Portable Runtime Utility Library - LDAP Driver p paprefs - PulseAudio Preferences p python-mediaprofiles - Python bindings for the GNOME media profiles library p yapra - Yet Another Pragger implementation # aptitude why libapr1 i subversion Depends libapr1 (>= 1.2.7) # aptitude why libaprutil1 i subversion Depends libsvn1 (= 1.6.12dfsg-6) i A libsvn1 Depends libaprutil1 (>= 1.3.2+dfsg)
libapr1-devとlibaprutil1-devを導入する。
# aptitude install libapr1-dev libaprutil1-dev The following NEW packages will be installed: krb5-multidev{a} libapr1-dev libaprutil1-dev libgssrpc4{a} libkadm5clnt-mit7{a} libkadm5srv-mit7{a} libkdb5-4{a} libkrb5-dev{a} libldap2-dev{a} libmysqlclient-dev{a} libmysqlclient16{a} libpcre3-dev{a} libpcrecpp0{a} libpq-dev{a} libpq5{a} libsqlite3-dev{a} mysql-common{a} uuid-dev{a} 0 packages upgraded, 18 newly installed, 0 to remove and 0 not upgraded. Need to get 9,372 kB of archives. After unpacking 32.8 MB will be used. Do you want to continue? [Y/n/?] Y Get:1 http://ftp.jp.debian.org/debian/ squeeze/main libgssrpc4 i386 1.8.3+dfsg-4squeeze1 [77.5 kB] Get:2 http://ftp.jp.debian.org/debian/ squeeze/main libkadm5clnt-mit7 i386 1.8.3+dfsg-4squeeze1 [61.2 kB] Get:3 http://ftp.jp.debian.org/debian/ squeeze/main libkdb5-4 i386 1.8.3+dfsg-4squeeze1 [61.2 kB] Get:4 http://ftp.jp.debian.org/debian/ squeeze/main libkadm5srv-mit7 i386 1.8.3+dfsg-4squeeze1 [74.6 kB] Get:5 http://ftp.jp.debian.org/debian/ squeeze/main krb5-multidev i386 1.8.3+dfsg-4squeeze1 [105 kB] Get:6 http://ftp.jp.debian.org/debian/ squeeze/main uuid-dev i386 2.17.2-9 [72.6 kB] Get:7 http://ftp.jp.debian.org/debian/ squeeze/main libapr1-dev i386 1.4.2-6+squeeze3 [1,029 kB] Get:8 http://ftp.jp.debian.org/debian/ squeeze/main libldap2-dev i386 2.4.23-7.2 [919 kB] Get:9 http://ftp.jp.debian.org/debian/ squeeze/main libpcrecpp0 i386 8.02-1.1 [108 kB] Get:10 http://ftp.jp.debian.org/debian/ squeeze/main libpcre3-dev i386 8.02-1.1 [279 kB] Get:11 http://ftp.jp.debian.org/debian/ squeeze/main libsqlite3-dev i386 3.7.3-1 [474 kB] Get:12 http://ftp.jp.debian.org/debian/ squeeze/main libpq5 i386 8.4.8-0squeeze1 [146 kB] Get:13 http://ftp.jp.debian.org/debian/ squeeze/main libkrb5-dev i386 1.8.3+dfsg-4squeeze1 [36.8 kB] Get:14 http://ftp.jp.debian.org/debian/ squeeze/main libpq-dev i386 8.4.8-0squeeze1 [228 kB] Get:15 http://ftp.jp.debian.org/debian/ squeeze/main mysql-common all 5.1.49-3 [70.9 kB] Get:16 http://ftp.jp.debian.org/debian/ squeeze/main libmysqlclient16 i386 5.1.49-3 [1,935 kB] Get:17 http://ftp.jp.debian.org/debian/ squeeze/main libmysqlclient-dev i386 5.1.49-3 [3,113 kB] Get:18 http://ftp.jp.debian.org/debian/ squeeze/main libaprutil1-dev i386 1.3.9+dfsg-5 [582 kB] Fetched 9,372 kB in 3s (2,892 kB/s) Selecting previously deselected package libgssrpc4. (Reading database ... 68852 files and directories currently installed.) Unpacking libgssrpc4 (from .../libgssrpc4_1.8.3+dfsg-4squeeze1_i386.deb) ... Selecting previously deselected package libkadm5clnt-mit7. Unpacking libkadm5clnt-mit7 (from .../libkadm5clnt-mit7_1.8.3+dfsg-4squeeze1_i386.deb) ... Selecting previously deselected package libkdb5-4. Unpacking libkdb5-4 (from .../libkdb5-4_1.8.3+dfsg-4squeeze1_i386.deb) ... Selecting previously deselected package libkadm5srv-mit7. Unpacking libkadm5srv-mit7 (from .../libkadm5srv-mit7_1.8.3+dfsg-4squeeze1_i386.deb) ... Selecting previously deselected package krb5-multidev. Unpacking krb5-multidev (from .../krb5-multidev_1.8.3+dfsg-4squeeze1_i386.deb) ... Selecting previously deselected package uuid-dev. Unpacking uuid-dev (from .../uuid-dev_2.17.2-9_i386.deb) ... Selecting previously deselected package libapr1-dev. Unpacking libapr1-dev (from .../libapr1-dev_1.4.2-6+squeeze3_i386.deb) ... Selecting previously deselected package libldap2-dev. Unpacking libldap2-dev (from .../libldap2-dev_2.4.23-7.2_i386.deb) ... Selecting previously deselected package libpcrecpp0. Unpacking libpcrecpp0 (from .../libpcrecpp0_8.02-1.1_i386.deb) ... Selecting previously deselected package libpcre3-dev. Unpacking libpcre3-dev (from .../libpcre3-dev_8.02-1.1_i386.deb) ... Selecting previously deselected package libsqlite3-dev. Unpacking libsqlite3-dev (from .../libsqlite3-dev_3.7.3-1_i386.deb) ... Selecting previously deselected package libpq5. Unpacking libpq5 (from .../libpq5_8.4.8-0squeeze1_i386.deb) ... Selecting previously deselected package libkrb5-dev. Unpacking libkrb5-dev (from .../libkrb5-dev_1.8.3+dfsg-4squeeze1_i386.deb) ... Selecting previously deselected package libpq-dev. Unpacking libpq-dev (from .../libpq-dev_8.4.8-0squeeze1_i386.deb) ... Selecting previously deselected package mysql-common. Unpacking mysql-common (from .../mysql-common_5.1.49-3_all.deb) ... Selecting previously deselected package libmysqlclient16. Unpacking libmysqlclient16 (from .../libmysqlclient16_5.1.49-3_i386.deb) ... Selecting previously deselected package libmysqlclient-dev. Unpacking libmysqlclient-dev (from .../libmysqlclient-dev_5.1.49-3_i386.deb) ... Selecting previously deselected package libaprutil1-dev. Unpacking libaprutil1-dev (from .../libaprutil1-dev_1.3.9+dfsg-5_i386.deb) ... Processing triggers for man-db ... Setting up libgssrpc4 (1.8.3+dfsg-4squeeze1) ... Setting up libkadm5clnt-mit7 (1.8.3+dfsg-4squeeze1) ... Setting up libkdb5-4 (1.8.3+dfsg-4squeeze1) ... Setting up libkadm5srv-mit7 (1.8.3+dfsg-4squeeze1) ... Setting up krb5-multidev (1.8.3+dfsg-4squeeze1) ... Setting up uuid-dev (2.17.2-9) ... Setting up libapr1-dev (1.4.2-6+squeeze3) ... Setting up libldap2-dev (2.4.23-7.2) ... Setting up libpcrecpp0 (8.02-1.1) ... Setting up libpcre3-dev (8.02-1.1) ... Setting up libsqlite3-dev (3.7.3-1) ... Setting up libpq5 (8.4.8-0squeeze1) ... Setting up libkrb5-dev (1.8.3+dfsg-4squeeze1) ... Setting up libpq-dev (8.4.8-0squeeze1) ... Setting up mysql-common (5.1.49-3) ... Setting up libmysqlclient16 (5.1.49-3) ... Setting up libmysqlclient-dev (5.1.49-3) ... Setting up libaprutil1-dev (1.3.9+dfsg-5) ...
この後、再度cpanでupdateを行うと以下のようなエラーが出る。成功している用に見えるが、失敗。
configure: checking neon library checking for neon-config... no An appropriate version of neon could not be found, so libsvn_ra_neon will not be built. If you want to build libsvn_ra_neon, please either install neon 0.29.0 on this system or get neon 0.29.0 from: http://www.webdav.org/neon/neon-0.29.0.tar.gz unpack the archive using tar/gunzip and rename the resulting directory from ./neon-0.29.0/ to ./neon/ no suitable neon found
neonというキーワードで検索。バーチャルパッケージをインストールしてみる。
# aptitude search neon v libneon-dev - p libneon25-dev - Header and static library files for libneon25 p libneon27 - An HTTP and WebDAV client library p libneon27-dbg - Detached symbols for libneon27 p libneon27-dev - Header and static library files for libneon27 i A libneon27-gnutls - An HTTP and WebDAV client library (GnuTLS enabled) p libneon27-gnutls-dbg - Detached symbols for libneon27 (GnuTLS enabled) p libneon27-gnutls-dev - Header and static library files for libneon27 (GnuTLS enabled)
どちらかを選べといわれるので、インストール済みのパッケージlibneon27-gnutlsの理由を調べる。subversionのインストールにはGnuTLS enabledのパッケージが必要らしい。
# aptitude install libneon-dev "libneon-dev" is a virtual package provided by: libneon27-gnutls-dev libneon27-dev You must choose one to install. No packages will be installed, upgraded, or removed. 0 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Need to get 0 B of archives. After unpacking 0 B will be used. # aptitude why libneon27-gnutls i subversion Depends libsvn1 (= 1.6.12dfsg-6) i A libsvn1 Depends libneon27-gnutls (>= 0.29.3)
GnuTLS enabledのlibneon27-gnutls-devをインストール。
# aptitude install libneon27-gnutls-dev The following NEW packages will be installed: libneon27-gnutls-dev 0 packages upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 399 kB of archives. After unpacking 1,343 kB will be used. Get:1 http://ftp.jp.debian.org/debian/ squeeze/main libneon27-gnutls-dev i386 0.29.3-3 [399 kB] Fetched 399 kB in 0s (921 kB/s) Selecting previously deselected package libneon27-gnutls-dev. (Reading database ... 70042 files and directories currently installed.) Unpacking libneon27-gnutls-dev (from .../libneon27-gnutls-dev_0.29.3-3_i386.deb) ... Processing triggers for man-db ... Setting up libneon27-gnutls-dev (0.29.3-3) ...