やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

libxml2-devel、libxslt-develというパッケージが見つからない

前回のつづき。

開発環境

  • LinuxMint 17.3 MATE

libxml2-devel, libxslt-develをインストールできなかった

$ sudo apt-get install libxml2-devel
[sudo] password for mint: 
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
E: パッケージ libxml2-devel が見つかりません
$ sudo apt-get install libxslt-devel
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
E: パッケージ libxslt-devel が見つかりません

一応gemでもやってみたが同様に見つからなかった。

$ sudo gem install libxml2-devel
ERROR:  Could not find a valid gem 'libxml2-devel' (>= 0) in any repository
ERROR:  Possible alternatives: libxml-feed, libxml-ext
$ sudo gem install libxslt-devel
ERROR:  Could not find a valid gem 'libxslt-devel' (>= 0) in any repository
ERROR:  Possible alternatives: libxml-feed, libxslt-ruby

調べてみた

スペルミスということはなさそう。

libxml2-devel

libxml2-develについて|日々の雑感
Index of /sources

libxslt-devel

RPM resource libxslt-devel

Synapticパッケージマネージャ

LinuxMint17.3MATEにはSynapticパッケージマネージャというアプリケーションがある。これで検索してみると、それらしきものを見つけた。

libxml2-devlibxslt1-devなので微妙に名前が違うが。

f:id:ytyaru:20170223162222g:plain
f:id:ytyaru:20170223162230g:plain
f:id:ytyaru:20170223163140g:plain

新たなエラーメッセージ

上記インストール後、新規にターミナルを起動してgemを実行。

$ sudo gem install hatenablog
[sudo] password for mint: 
Building native extensions.  This could take a while...
ERROR:  Error installing hatenablog:
    ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.9.1 extconf.rb
checking if the C compiler accepts ... yes
Building nokogiri using packaged libraries.
Using mini_portile version 2.1.0
checking for gzdopen() in -lz... no
zlib is missing; necessary for building libxml2
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/usr/bin/ruby1.9.1
    --help
    --clean
    --use-system-libraries
    --enable-static
    --disable-static
    --with-zlib-dir
    --without-zlib-dir
    --with-zlib-include
    --without-zlib-include=${zlib-dir}/include
    --with-zlib-lib
    --without-zlib-lib=${zlib-dir}/lib
    --enable-cross-build
    --disable-cross-build


Gem files will remain installed in /var/lib/gems/1.9.1/gems/nokogiri-1.6.8.1 for inspection.
Results logged to /var/lib/gems/1.9.1/gems/nokogiri-1.6.8.1/ext/nokogiri/gem_make.out

いい加減にしてくれ……。もう次回にする。

分析

apt-getではlibxml2-devellibxslt-develという名前がなかった。理由は以下が考えられる。

  • libxml2-devlibxslt1-devに改名された?
  • libxml2-devellibxml2-devlibxslt-devellibxslt1-devは別物?
  • apt-getで認識できる名前とSynapticパッケージマネージャでは別名で扱っている?

検証

apt-getでパッケージ検索するコマンドを調べて、存在するか確認する。

$ sudo apt-cache search libxml2-dev
[sudo] password for mint: 
libxml2-dev - Development files for the GNOME XML library
libglobus-common-dev - Globus Toolkit - Common Library Development Files
$ sudo apt-cache search libxslt1-dev
libxslt1-dev - XSLT 1.0 processing library - development kit

存在した。改名されたと考えるのが妥当か。

所感

エラーはいつまで続くのか……。かつてMinGWでGTKmmをコンパイルしたときのことを思い出す。