Linux From Scratch - Version 12.1-systemd
Chapter 3. Packages and Patches
이전 위로 / 처음으로 다음
패키지와 패치 모든 패키지

3.1 개요

이 장에는 기본 리눅스 시스템을 구축하기 위해 다운로드해야 하는 패키지 목록이 포함되어 있습니다. 나열된 버전 번호는 작동하는 것으로 알려진 소프트웨어의 버전에 해당하며, 이 책은 해당 버전에 따라 설명합니다. LFS 오류 또는 보안 권고에서 다른 버전을 지정하지 않는 한, 한 버전의 빌드 명령이 다른 버전에서 작동하지 않을 수 있으므로 다른 버전을 사용하지 않는 것이 좋습니다. 최신 패키지 버전에는 해결 방법이 필요한 문제가 있을 수도 있습니다. 이러한 해결 방법은 개발 버전에서 개발 및 안정화 될 예정입니다.

일부 패키지의 경우, 해당 릴리즈에 대한 릴리즈 타르볼(tarball)과 (Git 또는 SVN) 리포지토리 스냅샷 타르볼이 비슷한 파일 이름으로 게시될 수 있습니다. 릴리스 타르볼에는 해당 리포지토리 스냅샷의 내용 외에 생성된 파일(예: autoconf로 생성된 configure 스크립트)이 포함됩니다. 이 책은 가능한 한 릴리스 타르볼을 사용합니다. 책에서 지정한 릴리스 타르볼 대신 리포지토리 스냅샷을 사용하면 문제가 발생할 수 있습니다.

다운로드 위치가 항상 액세스 가능하지 않을 수 있습니다. 이 책이 출간된 이후 다운로드 위치가 변경된 경우 Google 검색 엔진에서 대부분의 패키지에 대한 유용한 결과를 제공합니다. 이 검색이 실패하면 LFS Mirrors에서 다른 다운로드 방법 중 하나를 시도해 보세요.

다운로드한 패키지와 패치는 전체 빌드 기간 동안 편리하게 사용할 수 있는 곳에 저장해야 합니다. 소스의 압축을 풀고 빌드하려면 작업 디렉터리도 필요합니다. $LFS/sources를 패치를 저장하는 장소와 작업 디렉터리로 모두 사용할 수 있습니다. 이 디렉터리를 사용하면 필요한 요소가 LFS 파티션에 위치하게 되며 빌드 프로세스의 모든 단계에서 사용할 수 있습니다.

이 디렉터리를 만들려면 다운로드를 시작하기 전에 root 사용자로 다음과 같이 실행합니다.

mkdir -v $LFS/sources

이 디렉터리를 쓰기 가능 및 sticky 디렉터리로 설정합니다. “Sticky”란 여러 사용자에게 디렉터리에 대한 쓰기 권한이 있더라도 파일 소유자만 해당 디렉터리 내의 파일을 삭제할 수 있음을 의미합니다. 다음 명령은 쓰기 및 sticky를 활성화합니다.

chmod -v a+wt $LFS/sources

LFS를 빌드하는 데 필요한 모든 패키지와 패치를 얻는 방법에는 여러 가지가 있습니다.

모든 패키지와 패치를 다운로드하려면 wget 명령의 입력으로 wget-list-systemd를 사용하세요.

wget --input-file=wget-list-systemd --continue --directory-prefix=$LFS/sources

또한 LFS-7.0부터는 계속 진행하기 전에 모든 올바른 패키지를 사용할 수 있는지 확인하는 데 사용할 수 있는 별도의 파일인 md5sums가 있습니다. 해당 파일을 $LFS/sources에 넣고 아래와 같이 실행하세요.

pushd $LFS/sources
  md5sum -c md5sums
popd

이 검사는 위에 나열된 방법 중 하나를 사용하여 필요한 파일을 다 받은 후 사용할 수 있습니다.

root가 아닌 사용자로 로 패키지 및 패치를 다운로드한 경우 해당 파일은 해당 사용자가 소유하게 됩니다. 파일 시스템은 UID로 소유자를 기록하며, 호스트 배포판의 일반 사용자의 UID는 LFS에서 할당되지 않습니다. 따라서 파일은 최종 LFS 시스템에서 이름 없는 UID의 소유로 남게 됩니다. LFS 시스템에서 사용자에 대해 동일한 UID를 할당하지 않을 경우 발생하는 문제를 방지하려면 지금 바로 이러한 파일의 소유자를 root로 변경하세요.

chown root:root $LFS/sources/*