Microsoft 社는 2022년 6월 15일 Internet Explorer 11의 지원을 종료했습니다.

p11-kit-0.25.0 on CentOS 5.8

제목

p11-kit-0.25.0 on CentOS 5.8

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. 읽을거리

제목

첨부파일