레드헷 계열 Gutenprint 빌드하기
Gutenprint 소스코드를 빌드하는 과정이다.
먼저 리눅스에서 docker-ce 와 git 바로 실행가능하도록 패키지가 있어야한다.
본인의 프린터가 Gutenprint 프린터 드라이버에 포함되어있지 않아 직접 소스를 수정하여 본인의 프린트 드라이버 정보를 기입해 사용하고 있다.
그 과정에서 소스 빌드가 매번 필요하여 글을 작성하게 되었다.
Linux 사전에 설치한 패키지
- docker-ce
- git
Gutenprint 소스 가져오기
구텐 프린트의 소스를 가져와야 한다. 소스는 Source Forge 호스팅 서버에 있다.
git clone https://git.code.sf.net/p/gimp-print/source gimp-print-source
위의 명령어를 정상적으로 수행하였다면 gimp-print-source 디렉토리로 이동해 container-build 디렉토리로 이동하자.
cd gimp-print-source/container-build
해당 디렉토리에는 두 개의 파일이 존재한다. Dockerfile, run-build 하나는 도커에서 이미지가 정의된 파일이고, run-build 도커에서 실행할 스크립트가 존재한다.
여기서 몇 가지 수정사항이 있다. Dockerfile 정의된 내용에는 fedora 배포판을 사용해 빌드에 필요한 패키지를 다운로드를 받고 구텐프린트 소스를 빌드한다.
그러나 fedora 배포판이 업데이트되면서 wget, libusb-devel 패키지가 Deprecated 되면서 빌드되지 않는다. 내용을 수정해 대체되는 패키지로 바꿔주어야 한다.
sed -i "s/wget/wget1 wget1-wget/g" Dockerfile
sed -i "s/libusb-devel/libusb-compat-0.1-devel/g" Dockerfile
도커에서 Gutenprint 이미지 생성하기
사전 작업이 완료되었다면 현재 container-build 디렉토리에서 도커의 이미지를 생성해주도록 한다.
docker build -t gp-src:latest .
이미지가 정상적으로 생성되었다면 docker ps 명령어에서 gp-src 이미지가 있을 것이다.
docker ps
해당 이미지에는 Gutenprint 빌드로 인한 실행파일들이 있다. docker run 명령어로 실행해 도커에서 docker cp 명령어로 가져오거나 docker exec -it bin/bash 명령어로 직접 bash 쉘로 접속해 소스를 수정 후 빌드할 수 있다.