termux環境でXML::Simpleのインストール

2018/6/12 [17:54:03] (火) 天気

Androidタブレットのlinux環境、termuxにperlをインストールして普段の仕事環境を構築していくネタ。


XML::Parserのコンパイルでハマったのでメモ。

結論からいうと、expat.h expat_external.hというふたつのファイルをexpatの本家サイトからいただいてきて/usr/include/に配置して解決。

expat本家→https://github.com/libexpat/


perlのXML::SimpleというXMLを解析するためのモジュールは必需品。

WEBで提供されるもろもろのデータのほとんどはXMLかjson形式なので、なくてはならないシロモノだ。

また、ワード(.docx)やエクセル(.xlsx)も、その本体はXMLファイルなので、ワードファイルの解析にもXML::Simpleは必須。というか、XML形式のデータは日常のあちこちに広く深く潜んでいる。


このXML::Simpleというモジュールは、MacOSXでも、WINDOWSのActivePerlでもデフォルトで入っている標準のモジュール(…って記憶が曖昧)

ところが、termuxのperlのパッケージには入っていないので、CPAN(perlのモジュールならなんでも揃う巨大なアーカイブ)から持ってくることにした。


CPANのインストール

pkg install cpan


makeのインストール

pkg install make


XML::Simpleをインストールするために必要なXML::Parserは(ていうか、XML::Simpleは被せもの・ガワでその実体はSAXとかParser)「.xs」ファイルを生成する必要がある、Cコンパイラが必要なので。

Cコンパイラのインストール

pkg install llvm

pkg install clang


これで準備完了。cpanのコマンドラインで

install XML::Simple

とやればインストールできるはずなんだけど、XML::Parserのインストールでエラーとなって止まってしまう。面倒くさいけどインストールのログを見ると

image

コンパイルに必要な「expat.h」が見つからない、というエラーで終了している。


「XML::Parser cpan expat.h」などとぐーぐる様に訊ねてみたらさくっと解答が出てきたので、expat本家サイトから「expat-2.2.5.tar.bz2」をいただいてきて解凍、その中に入っていたexpat.h(と、expat_external.h)を「/usr/include/」にコピーしたら無事インストールできた。


とりあえず今日はここまで。

というのも、termuxのlinux環境はファイルのpathが独特、というか閉じた中でやってるみたいで、スクリプトの中でファイルのコピー操作が意図どおりにいかない。これは調べなきゃ、だなあ。


termuxというAndroidのlinux環境。こりゃ久しぶりに面白いもの見つけたなあ。

<<2026/1>>
    123
45678910
11121314151617
18192021222324
25262728293031
検索:

【最近の20件】