CentOSへのpcsc-perlインストール
TL上で知り合いが「CentOS6にBonCasServer入れたいけど、pcsc-perlがインストールできん…」と言ってたので調べてみた。
確かにパッケージ提供されてないみたいだし、RedHat系ならrpmで入れたいよね。
ってことで、自作してみました。プラスじゃないとファイルアップロードできないみたいなので、作成手順でごめんね。
- rpmbuildをインストールする(必要に応じて開発関連ツールも)
まずはrpmファイルを作成するために、rpmbuildコマンドが必要なのでインストールする
yum -y install rpm-build
- ソースファイルとってくる
pcsc-perlのソースファイルを提供元から持ってくる。
http://ludovic.rousseau.free.fr/softwares/pcsc-perl/pcsc-perl-1.4.12.tar.bz2
とってきたら、rpm作成のためのディレクトリにコピーする。
cp pcsc-perl-1.4.12.tar.bz2 /usr/src/redhat/SOURCES
- SPECファイルの入手
rpmを作成するための指示ファイルであるspecファイルを入手する。
FedoraのBugzilla(https://bugzilla.redhat.com/show_bug.cgi?id=711233)にpcsc-perl-1.4.12対応のSPECファイルがあったのでこれを利用。この内容を以下のとおりspecファイルとして保存
cat > /usr/src/redhat/SPECS/pcsc-perl.spec
#コンソールから貼り付けて、最終行でCtrl-Dでcatを終了
リンク先が消えたらせつないので転記
%define pcscver 1.3.0 %define pcsclib libpcsclite.so.1 %ifarch x86_64 ppc64 ia64 sparc64 s390x %define mark64 ()(64bit) %endif Name: pcsc-perl Version: 1.4.12 Release: 1%{?dist} Summary: Perl interface to the PC/SC smart card library Group: Development/Libraries License: GPLv2+ URL: http://ludovic.rousseau.free.fr/softwares/pcsc-perl/ Source0: http://ludovic.rousseau.free.fr/softwares/pcsc-perl/%{name}-%{version}.tar.bz2 Source1: http://ludovic.rousseau.free.fr/softwares/pcsc-perl/%{name}-%{version}.tar.bz2.asc BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: perl(ExtUtils::MakeMaker) BuildRequires: pcsc-lite-devel >= %{pcscver} Requires: %{pcsclib}%{?mark64} Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) Provides: perl-pcsc = %{version}-%{release} %description This package contains a Perl interface to the PC/SC smart card library. %prep %setup -q chmod 644 examples/* # avoid dependencies f=Changelog ; iconv -f iso-8859-1 -t utf-8 $f > $f.utf8 ; mv $f.utf8 $f %build %{__perl} Makefile.PL INSTALLDIRS=vendor OPTIMIZE="$RPM_OPT_FLAGS" DEFINE=-Wall make %{?_smp_mflags} %install rm -rf $RPM_BUILD_ROOT make pure_install PERL_INSTALL_ROOT=$RPM_BUILD_ROOT find $RPM_BUILD_ROOT -type f -name .packlist -exec rm -f {} ';' find $RPM_BUILD_ROOT -type f -name '*.bs' -a -size 0 -exec rm -f {} ';' find $RPM_BUILD_ROOT -depth -type d -exec rmdir {} 2>/dev/null ';' chmod -R u+w $RPM_BUILD_ROOT/* %check # tests need configured readers etc if ! grep -qF 'dlopen("%{pcsclib}"' PCSCperl.h ; then # sanity check echo "ERROR: pcsc lib name mismatch in PCSCperl.h/dependencies" ; exit 1 fi %clean rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root,-) %doc Changelog LICENCE README examples/ %{perl_vendorarch}/auto/Chipcard/ %{perl_vendorarch}/Chipcard/ %{_mandir}/man3/Chipcard::PCSC*.3* %changelog