때때로 사람들을 소스코드에만 있는 데비안 패키지가 아닌 특정버젼의 프로그램을 사용하고자 한다. 이렇게 되면 패키징 시스템에 문제가 있을 수 있는데 여러분의 이메일 서버의 새버젼을 새롭게 컴파일 하기를 원한다고 할 때, 모든 것은 다 좋은데 데비안에 있는 많은 패키지를이 MTA (Mail Transfer Agent)에 의존하고 있다. 여러분 자신이 컴파일한 것을 설치하고자 했기 때문에 패키징 시스템은 그것을 모르게 되는 것이다.
이 상황에서 equivs가 나타나는데 이를 이용하기 위해서 이 이름을
가진 패키지를 설치한다. 이 패키지가 하는 일은 의존성을 해결해주는 패키지를
만들고 없애는 기능을 하면서 패키징 시스템이 의존성이 만족하게 믿도록 하는
것이다.
시작하기 전에, 우선 다른 옵션으로 데비안 용으로 패키지된 프로그램을 좀더 안정적인 방법으로 컴파일 하는 방법이 있다는 것을 여러분에게 상기시켜주는 것이 좋다. 그리고 하고자 하는 것을 알고자 하지 않는다면 의존성을 대체하는 equivs 사용을 하지 말아야한다. 자세한 정보는 소스패키지로 작업하기, 6를 참조하라.
계속해서 MTA를 가지고 보면 여러분이 postfix을 새롭게 컴파일 해서
설치했는데 mutt를 계속해서 사용하고 싶은 경우 갑자기
mutt가 다른 MTA를 원하게 됨을 알고 있지만 이미 시스템 내에는 있다.
어떤 디렉토리로 (/tmp를 예를 들면) 가서 다음을 실행한다:
# equivs-control name
여기서 여러분이 만들고자 하는 control 파일의 이름으로 name 를 대체하라.
ection: misc
Priority: optional
Standards-Version: 3.0.1
Package: <enter package name; defaults to equivs-dummy>
Version: <enter version here; defaults to 1.0>
Maintainer: <your name and email address; defaults to username>
Pre-Depends: <packages>
Depends: <packages>
Recommends: <packages>
Suggests: <package>
Provides: <(virtual)package>
Architecture: all
Copyright: <copyright file; defaults to GPL2>
Changelog: <changelog file; defaults to a generic changelog>
Readme: <README.Debian file; defaults to a generic one>
Extra-Files: <additional files for the doc directory, commaseperated>
Description: <short description; defaults to some wise words>
long description and info
.
second paragraph
우리는 우리가 원하는 것을 변경할 필요가 있다. field의 형태를 잘 보고 기술내용을 확인하라. 여기에 대해서 다 설명하지는 않는다. 이젠 필요한 작업을 해보자:
Section: misc
Priority: optional
Standards-Version: 3.0.1
Package: mta-local
Provides: mail-transport-agent
여기까지 다 했다. mutt는 mail-transport-agent에
의존하는데 이는 모든 MTA에 의해 제공하는 가상 패키지이다. 그래서 여기선
mail-transport-agent라는 이름을 사용할 수 있지만 Provides를
이용하여 가상 패키지 방법을 이용하게 된다.
이제는 여기서 패키지를 빌드할 필요가 있다:
# equivs-build name
dh_testdir
touch build-stamp
dh_testdir
dh_testroot
dh_clean -k
# Add here commands to install the package into debian/tmp.
touch install-stamp
dh_testdir
dh_testroot
dh_installdocs
dh_installchangelogs
dh_compress
dh_fixperms
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
dpkg-deb: building package `name' in `../name_1.0_all.deb'.
패키지가 생성되었다. 여기서 주의할 것은 패키지가 현재 디렉토리에 만들어
졌다는 것이다.
그리고 나서 .deb를 설치하면 된다.
우리가 보아온 것은 equivs데 대한 몇가지 사용에 대한 것이었다.
여러분이 대개 설치하는 프로그램에 의존하는 my-favorites 를 만들 수
있다. 자유롭게 생각하되, 조심하길 바란다.
/usr/share/doc/equivs/examples에 있는 control 파일의 예가 있다는
것에 주목하라. 이들을 확인하길 바란다.
많은 데비안 사용자들은 자신만의 locale을 사용한다. 한국어 사용자의 경우 대부분이 ko_KR.EUC-KR를 사용한다.
localepurge는 사용하지 않는 locale들을 지울 때 사용하게 된다.
단지 apt-get install localepurge 하면 된다.
설정하는 것은 매우 쉽다. 단지 debconf이 묻는 질문에만 잘 대답하면 된다. 단지 첫번째 질문에만 조심해서 답변을 해야하는데 잘못하며 여러분이 사용하는 locale을 포함해서 모든 locale을 지울 수 있다. 이를 복구 하려면 이것들을 제공하는 패키지들을 재설치해야한다.
apt-show-versions는 업데이트 되는 패키지를 보여주는 프로그램 이고
다른 몇몇 유용한 정보늘 보여준다. -u 옵션은 업그레이드 할 수 있는
패키지를 보여준다.
$ apt-show-versions -u
libeel0/unstable upgradeable from 1.0.2-5 to 1.0.2-7
libeel-data/unstable upgradeable from 1.0.2-5 to 1.0.2-7
APT HOWTO
1.8.2 - 2002년 11월 November 2002kov@debian.orgyooseong@debian.org