p11-kit-0.25.0 on CentOS 5.8
- 홈페이지 : https://p11-glue.github.io/p11-glue/p11-kit.html
- GitHub : https://github.com/p11-glue/p11-kit
0. 주의사항
configure 파일이 있는 버전을 다운로드 받기를 권한다.
1. 준비작업
1.1. 다운로드
https://github.com/p11-glue/p11-kit/releases 에서 다운로드 한다.
CentOS 5.8 에서 직접 다운로드 할 수 없고, 다른 장비에서 다운로드 한 파일을 sftp 따위로 올려야 한다.
curl -O -L https://github.com/p11-glue/p11-kit/releases/download/0.25.0/p11-kit-0.25.0.tar.xz
다만, 필자가 작성한 다른 글에 따라 wget 을 설치했다면, 다음과 같이 할 수도 있다.
/opt/wget-1.21.4/bin/wget \ --no-check-certificate \ https://github.com/p11-glue/p11-kit/releases/download/0.25.0/p11-kit-0.25.0.tar.xz
1.2. make, gcc 및 xz 설치
yum install make gcc xz -y
1.3. libffi-3.4.4 설치
이에 대해서는 필자가 작성한 다른 글을 참조한다.
1.4. libtasn1-4.19.0 설치
이에 대해서는 필자가 작성한 다른 글을 참조한다.
1.5. configure 가 없는 p11-kit-0.25.0.tar.gz 으로 설치하는 경우
다음과 같은 것들이 있어야 하고, 설치에 대해서는 필자가 작성한 다른 글을 참조한다.
- libtool-2.4.7
- pkg-config-0.29.2
- automake-1.16.5
- gettext-0.22
- autoconf-2.71
2. 컴파일 및 설치
설치 디렉토리(--prefix
) 는 알아서 변경한다.
대부분의 Linux 배포판들은 /usr 이 설치 디렉토리(
--prefix
)이지만, 컴파일해서 설치하는 것들은 /usr/local 이나 /opt 아래에 두는 경우가 많다.
2.1. configure 가 있는 p11-kit-0.25.0.tar.xz 으로 설치
$ mkdir -p logs/p11-kit-0.25.0 $ unxz -k p11-kit-0.25.0.tar.xz $ tar xvf p11-kit-0.25.0.tar > logs/p11-kit-0.25.0/tar.`date +%Y%m%d.%H%M%S`.log 2>&1 $ cd p11-kit-0.25.0 $ LIBTASN1_CFLAGS="-I/opt/libtasn1-4.19.0/include" \ LIBTASN1_LIBS="-L/opt/libtasn1-4.19.0/lib -ltasn1" \ LIBFFI_CFLAGS="-I/opt/libffi-3.4.4/include" \ LIBFFI_LIBS="-L/opt/libffi-3.4.4/lib64 -lffi" \ ./configure --prefix=/opt/p11-kit-0.25.0 > ../logs/p11-kit-0.25.0/config.`date +%Y%m%d.%H%M%S`.log 2>&1 $ make > ../logs/p11-kit-0.25.0/make.`date +%Y%m%d.%H%M%S`.log 2>&1 $ make install > ../logs/p11-kit-0.25.0/install.`date +%Y%m%d.%H%M%S`.log 2>&1
2.2. configure 가 없는 p11-kit-0.25.0.tar.gz 으로 설치
$ mkdir -p logs/p11-kit-0.25.0 $ tar xvfz p11-kit-0.25.0.tar.gz > logs/p11-kit-0.25.0/tar.`date +%Y%m%d.%H%M%S`.log 2>&1 $ cd p11-kit-0.25.0 $ ACLOCAL_PATH=/opt/libtool-2.4.7/share/aclocal:/opt/pkg-config-0.29.2/share/aclocal:/opt/automake-1.16.5/share/aclocal-1.13:/opt/gettext-0.22/share/aclocal \ LIBTASN1_CFLAGS="-I/opt/libtasn1-4.19.0/include" \ LIBTASN1_LIBS="-L/opt/libtasn1-4.19.0/lib -ltasn1" \ LIBFFI_CFLAGS="-I/opt/libffi-3.4.4/include" \ LIBFFI_LIBS="-L/opt/libffi-3.4.4/lib64 -lffi" \ PATH=/opt/libtasn1-4.19.0/bin:/opt/autoconf-2.71/bin:/opt/gettext-0.22/bin:/opt/automake-1.16.5/bin:/opt/libtool-2.4.7/bin:${PATH} \ ./autogen.sh --prefix=/opt/p11-kit-0.25.0 > ../logs/p11-kit-0.25.0/config.`date +%Y%m%d.%H%M%S`.log 2>&1 $ make > ../logs/p11-kit-0.25.0/make.`date +%Y%m%d.%H%M%S`.log 2>&1 $ make install > ../logs/p11-kit-0.25.0/install.`date +%Y%m%d.%H%M%S`.log 2>&1
3. 적용
3.1. 현재 환경에 적용
현재 환경에서는 다음과 같이 적용한다.
$ export PATH=/opt/p11-kit-0.25.0/bin:${PATH} $ export LD_LIBRARY_PATH=/opt/p11-kit-0.25.0/lib:${LD_LIBRARY_PATH}
pkg-config 를 사용하는 경우 다음의 내용도 추가할 수 있다.
export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:/opt/p11-kit-0.25.0/lib/pkgconfig
3.2. 현재 로그인한 사용자에게 적용
현재 로그인한 사용자에게 적용하려면, ".bash_profile" 파일의 끝에 위의 내용을 추가한다.
3.3. 시스템 전체에 적용
3.3.1. 환경변수 변경
"/etc/bashrc" 파일의 끝에 위의 내용을 추가한다.
LD_LIBRARY_PATH 는 다음과 같이 ld.so.conf 를 변경하는 방법도 있다.
3.3.2. ld.so.conf 변경
"/etc/ld.so.conf.d/p11-kit.conf" 파일을 편집(추가)한다.
$ vi /etc/ld.so.conf.d/p11-kit.conf
다음의 내용으로 교체(추가)한다.
/opt/p11-kit-0.25.0/lib
변경사항을 적용한다.
$ ldconfig
4. 문제해결
4.1. -o
명령어가 없다는 에러
autogen.sh 이후에 make 할 때 발생한다.
GEN trust/basic.asn.h /bin/sh: -o: command not found make: *** [trust/basic.asn.h] Error 127
asn1Parser 명령어를 찾을 수 없어서 발생하는 오류이다.
autogen.sh 할 때, PATH 환경변수에 libtasn1 의 bin 디렉토리가 누락되었기 때문이다.
PATH 환경변수를 확인한다.
4.2. pkg.m4
가 너무 오래되었다는 에러
autogen.sh 에서 발생한다.
autoreconf: running: aclocal -I build/m4 configure.ac:35: error: pkg.m4 is too old; copy the latest version in build/m4 configure.ac:35: the top level autom4te: error: /opt/m4-1.4.19/bin/m4 failed with exit status: 1 aclocal: error: /opt/autoconf-2.71/bin/autom4te failed with exit status: 1 autoreconf: error: aclocal failed with exit status: 1
최신 버전의 pkg-config 를 설치하지 않았거나, ACLOCAL_PATH 에 pkg-config 의 aclocal 디렉토리가 누락되었기 때문이다.
configure 파일을 생성할 때 발생한다. 가급적 p11-kit-0.25.0.tar.xz 파일을 다운로드 받아 사용한다.
4.3. LIBTOOL
이 정의되지 않았다는 에러
Makefile.am:19: error: Libtool library used but 'LIBTOOL' is undefined Makefile.am:19: The usual way to define 'LIBTOOL' is to add 'LT_INIT' Makefile.am:19: to 'configure.ac' and run 'aclocal' and 'autoconf' again. Makefile.am:19: If 'LT_INIT' is in 'configure.ac', make sure Makefile.am:19: its definition is in aclocal's search path. Makefile.am: installing 'build/litter/depcomp' parallel-tests: installing 'build/litter/test-driver' autoreconf: error: automake failed with exit status: 1
libtool 설치가 누락되었거나, ACLOCAL_PATH 에 libtool 의 aclocal 디렉토리가 누락되었기 때문이다.
configure 파일을 생성할 때 발생한다. 가급적 p11-kit-0.25.0.tar.xz 파일을 다운로드 받아 사용한다.
4.4. autoreconf 를 찾을 수 없다는 에러
./autogen.sh: line 19: autoreconf: command not found
autoconf 설치 혹은 PATH 환경변수에서 누락되었다.
configure 파일을 생성할 때 발생한다. 가급적 p11-kit-0.25.0.tar.xz 파일을 다운로드 받아 사용한다.
4.5. autopoint 를 찾을 수 없다는 에러
Can't exec "autopoint": No such file or directory at /opt/autoconf-2.71/share/autoconf/Autom4te/FileUtils.pm line 293.
gettext 설치 혹은 PATH 환경변수에서 누락되었다.
configure 파일을 생성할 때 발생한다. 가급적 p11-kit-0.25.0.tar.xz 파일을 다운로드 받아 사용한다.
4.5. 읽을거리
- Compiling p11-kit from Source : 공식 홈페이지에서 제공