LFS의 목표는 자가 복제에 필요한 모든 패키지를 포함하여 완전하고 사용 가능한 기초 수준의 시스템을 구축하고, 사용자의 선택에 따라 보다 완벽한 시스템을 사용자 지정할 수 있는 비교적 최소한의 기반을 제공하는 것입니다. 그렇다고 해서 LFS가 가장 작은 시스템이라는 뜻은 아닙니다. 엄밀히 말하자면 필수는 아니지만 몇 가지 중요한 패키지가 포함되어 있습니다. 아래 목록에는 책에 포함된 각 패키지가 포함된 이유가 설명되어 있습니다.
Acl
파일 및 디렉터리에 대한 세분화된 액세스 권한을 정의하는데 사용되는 액세스 제어 목록을 관리하는 유틸리티가 포함되어 있습니다.
Attr
파일 시스템 개체의 확장 속성을 관리하기 위한 프로그램이 포함되어 있습니다.
Autoconf
개발자의 템플릿에서 소스 코드를 자동으로 구성할 수 있는 셸 스크립트를 생성하는 프로그램을 제공합니다. 빌드 절차가 업데이트된 후 패키지를 다시 빌드하는 데 필요한 경우가 많습니다.
Automake
템플릿에서 Make 파일을 생성하는 프로그램이 포함되어 있습니다. 빌드 절차가 업데이트된 후 패키지를 다시 빌드하는 데 필요한 경우가 많습니다.
Bash
시스템에 본 셸 인터페이스를 제공하기 위한 LSB 핵심 요구 사항을 충족합니다. 일반적인 사용법과 광범위한 기능으로 인해 다른 셸 패키지보다 선택되었습니다.
Bc
임의의 정밀도 수치 처리 언어를 제공합니다. 리눅스 커널을 빌드하기 필요한 사항입니다.
Binutils
객체 파일을 처리하기 위한 링커, 어셈블러 및 기타 도구를 제공합니다. 이 패키지의 프로그램은 LFS 시스템에서 대부분의 패키지를 컴파일하는 데 필요합니다.
Bison
여러 LFS 프로그램을 빌드하는 데 필요한 yacc(Yet Another Compiler Compiler)의 GNU 버전이 포함되어 있습니다.
Bzip2
파일 압축 및 압축 해제를 위한 프로그램이 포함되어 있습니다. 많은 LFS 패키지를 압축 해제하는 데 필요합니다.
Check
다른 프로그램을 위한 테스트 도구를 제공합니다.
Coreutils
파일과 디렉터리를 열고 조작하는 데 필요한 여러 가지 필수 프로그램이 포함되어 있습니다. 명령줄을 기반으로 하는 파일 관리에 필요하며 LFS의 모든 패키지의 설치 필요합니다.
D-Bus
애플리케이션 간에 서로 통신할 수 있는 메시지 버스 시스템을 구현하는 프로그램이 포함되어 있습니다.
DejaGNU
다른 프로그램을 테스트하기 위한 프레임워크를 제공합니다.
Diffutils
파일 또는 디렉터리 간의 차이점을 보여주는 프로그램이 포함되어 있습니다. 패치를 만드는 데 사용할 수 있으며 많은 패키지의 빌드 과정에도 사용됩니다.
E2fsprogs
ext2, ext3 및 ext4 파일 시스템을 처리하기 위한 유틸리티를 제공합니다. 이 파일 시스템은 리눅스가 지원하는 가장 일반적이고 철저한 검증를 거친 파일 시스템입니다.
Expat
비교적 작은 XML 구문 분석 라이브러리를 생성합니다. XML::Parser Perl 모듈에 필요합니다.
Expect
다른 대화형 프로그램과 스크립트 대화를 수행하기 위한 프로그램이 포함되어 있습니다. 일반적으로 다른 패키지를 테스트하는 데 사용됩니다.
File
파일의 유형을 확인하는 유틸리티가 포함되어 있습니다. 일부 패키지는 빌드 스크립트에 이 유틸리티가 필요합니다.
Findutils
파일을 찾는 프로그램을 제공합니다. 많은 패키지의 빌드 스크립트에서 사용됩니다.
Flex
텍스트의 패턴을 인식하는 프로그램을 생성하는 유틸리티가 포함되어 있습니다. lex(lexical analyzer) 프로그램의 GNU 버전입니다. 여러 LFS 패키지 빌드에 필요합니다.
Gawk
텍스트 파일 조작을 위한 프로그램을 제공합니다. awk(Aho-Weinberg-Kernighan)의 GNU 버전입니다. 다른 많은 패키지의 빌드 스크립트에서 사용됩니다.
GCC
컴파일러 컬렉션입니다. 여기에는 C 및 C++ 컴파일러와 LFS에서는 빌드하지 않는 여러 컴파일러가 포함되어 있습니다.
GDBM
GNU 데이터베이스 관리자 라이브러리가 포함되어 있습니다. 다른 LFS 패키지인 Man-DB에서 사용됩니다.
Gettext
많은 패키지의 국제화(I18N) 및 현지화(L10N)를 위한 유틸리티와 라이브러리를 제공합니다.
Glibc
기본 C 라이브러리가 포함되어 있습니다. 이 패키지가 없으면 Linux 프로그램이 실행되지 않습니다.
GMP
임의 정밀도 계산에 유용한 기능을 제공하는 수학 라이브러리를 제공합니다. GCC를 빌드하는 데 필요합니다.
Gperf
키 집합에서 완벽한 해시 함수를 생성하는 프로그램을 생성합니다. Systemd에 필요합니다.
Grep
파일 검색을 위한 프로그램이 포함되어 있습니다. 대부분의 패키지 빌드 스크립트에서 사용됩니다.
Groff
텍스트 처리 및 서식을 지정하는 프로그램을 제공합니다. 이것의 중요한 기능 중 하나는 매뉴얼 페이지의 서식을 지정하는 것입니다.
GRUB
GRand Unified Bootloader입니다. 여러 부트로더 중 가장 유연합니다.
Gzip
파일 압축 및 압축 해제 프로그램이 포함되어 있습니다. LFS에서 패키지의 압축을 풀 때 필요합니다.
Iana
네트워크 서비스 및 프로토콜에 대한 데이터를 제공합니다. 적절한 네트워크 기능을 활성화하는 데 필요합니다.
Inetutils
기본 네트워크 관리를 위한 프로그램을 제공합니다.
Intltool
소스 파일에서 번역 가능한 문자열을 추출하기 위한 도구를 제공합니다.
IProute2
기본 및 고급 IPv4 및 IPv6 네트워크을 위한 프로그램이 포함되어 있습니다. 이 패키지는 다른 일반적인 네트워크 도구 패키지(net-tools)보다 IPv6 지원 기능 때문에 선택되었습니다.
Jinja2
텍스트 템플릿을 위한 Python 모듈입니다. Systemd 빌드에 필요합니다.
Kbd
키 테이블 파일, 미국 이외의 키보드용 키보드 유틸리티 및 여러 콘솔 글꼴을 생성합니다.
Kmod
리눅스 커널 모듈을 관리하는 데 필요한 프로그램을 제공합니다.
Less
파일을 볼 때 위아래로 스크롤할 수 있는 매우 멋진 텍스트 파일 뷰어가 포함되어 있습니다. 많은 패키지가 출력 페이저로 이 패키지를 사용합니다.
Libcap
리눅스 커널에서 사용할 수 있는 POSIX 1003.1e 기능에 대한 사용자 공간 인터페이스를 구현합니다.
Libelf
elfutils 프로젝트는 ELF 파일 및 DWARF 데이터를 위한 라이브러리와 도구를 제공합니다. 이 패키지의 대부분의 유틸리티는 다른 패키지에서 사용할 수 있지만 기본(그리고 가장 효율적인) 구성을 사용하여 리눅스 커널을 빌드하려면 이 라이브러리가 필요합니다.
Libffi
다양한 호출 규칙에 대한 이식 가능한 고수준 프로그래밍 인터페이스를 구현합니다. 일부 프로그램은 컴파일 시 함수에 어떤 인수를 전달할지 모를 수 있습니다. 예를 들어, 인터프리터는 런타임에 주어진 함수를 호출하는 데 사용되는 인수의 수와 유형을 알 수 있습니다. 이러한 프로그램에서 Libffi를 사용하여 인터프리터 프로그램에서 컴파일된 코드로 연결을 제공할 수 있습니다.
Libpipeline
유연하고 편리한 방식으로 서브프로세스의 파이프라인을 조작하기 위한 라이브러리를 제공합니다. Man-DB 패키지에 필요합니다.
Libtool
GNU 일반 라이브러리 지원 스크립트가 포함되어 있습니다. 이 스크립트는 공유 라이브러리 사용의 복잡성을 일관되고 이식 가능한 인터페이스로 래핑합니다. 다른 LFS 패키지의 테스트 스위트에서 필요합니다.
Libxcrypt
비밀번호 해싱을 위해 다양한 패키지(특히 Shadow)에 필요한 libcrypt 라이브러리를 제공합니다. 더 이상 사용되지 않는 Glibc의 libcrypt 구현을 대체합니다.
Linux Kernel
운영 체제입니다. GNU/Linux 환경의 리눅스입니다.
M4
다른 프로그램의 빌드 도구로 유용한 일반 텍스트 매크로 프로세서를 제공합니다.
Make
패키지 빌드를 진행하는 프로그램이 포함되어 있습니다. LFS의 거의 모든 패키지에 필요합니다.
MarkupSafe
HTML/XHTML/XML의 문자열을 안전하게 처리하기 위한 Python 모듈입니다. Jinja2에 필요합니다.
Man-DB
man 페이지를 찾고 보기 위한 프로그램이 포함되어 있습니다. 국제화 기능이 뛰어나기 때문에 man 패키지 대신 선택되었습니다. 이 패키지는 man 프로그램을 제공합니다.
Man-pages
기본 리눅스 매뉴얼 페이지의 실제적인 내용을 제공합니다.
Meson
소프트웨어 빌드 자동화를 위한 소프트웨어 도구를 제공합니다. Meson의 주요 목표는 소프트웨어 개발자가 빌드 시스템을 구성하는 데 소요되는 시간을 최소화하는 것입니다. Systemd 및 많은 BLFS 패키지를 빌드하는 데 필요합니다.
MPC
복소수에 대한 산술 함수를 제공합니다. GCC에 필요합니다.
MPFR
배정밀도 산술을 위한 함수가 포함되어 있습니다. GCC에 필요합니다.
Ninja
속도에 중점을 둔 소규모 빌드 시스템을 제공합니다. 상위 레벨 빌드 시스템에서 입력 파일을 생성하고 가능한 한 빠르게 빌드를 실행하도록 설계되었습니다. Meson에 필요합니다.
Ncurses
터미널 독립적인 문자 화면 처리를 위한 라이브러리가 포함되어 있습니다. 메뉴형 시스템에서 커서 제어를 제공하는 데 자주 사용됩니다. LFS의 여러 패키지에 필요합니다.
Openssl
암호화와 관련된 관리 도구와 라이브러리를 제공합니다. 리눅스 커널을 비롯한 다른 패키지에 암호화 기능을 제공합니다.
Patch
일반적으로 diff 프로그램을 통해서 만든 패치 파일을 적용하여 파일을 수정하거나 생성하는 프로그램이 포함되어 있습니다. 여러 LFS 패키지의 빌드 절차에 필요합니다.
Perl
런타임 언어 PERL 인터프리터입니다. 여러 LFS 패키지의 설치 및 테스트 스위트에 필요합니다.
Pkgconf
개발 라이브러리의 컴파일러 및 링커 플래그를 구성하는 데 도움이 되는 프로그램이 포함되어 있습니다. 많은 패키지의 빌드 시스템에 필요한 pkg-config의 대체 프로그램으로 사용할 수 있습니다. 원래 Pkg-config 패키지보다 더 활발하게 유지 관리되고 약간 더 빠릅니다.
Procps-NG
프로세스 모니터링용 프로그램이 포함되어 있습니다. 시스템 관리에 유용하며 LFS 부트스크립트에서도 사용됩니다.
Psmisc
실행 중인 프로세스에 대한 정보를 표시하는 프로그램을 포함하고 있습니다. 시스템 관리에 유용합니다.
Python 3
코드 가독성을 강조하는 디자인 철학을 가진 Python 인터프리터 언어를 제공합니다.
Readline
명령줄 편집 및 히스토리 기능을 제공하는 라이브러리 세트입니다. Bash에서 사용합니다.
Sed
명령줄에서 텍스트 편집기에서 텍스트를 열지 않고도 텍스트를 편집할 수 있습니다. 많은 LFS 패키지의 설정 스크립트에도 필요합니다.
Shadow
비밀번호를 안전하게 처리하는 프로그램이 포함되어 있습니다.
Systemd
Sysvinit의 대안으로 초기화 프로그램과 몇 가지 추가 부팅 및 시스템 제어 기능을 제공합니다. 많은 리눅스 배포판에서 사용됩니다.
Tar
LFS에서 사용되는 거의 모든 패키지의 아카이브 및 추출 기능을 제공합니다.
Tcl
많은 테스트 스위트에서 사용되는 Tool Command Language가 포함되어 있습니다.
Texinfo
info 파일 읽기, 쓰기 및 변환을 위한 프로그램을 제공합니다. 많은 LFS 패키지의 설치 절차에 사용됩니다.
Util-linux
기타 유틸리티 프로그램이 포함되어 있습니다. 여기에는 파일 시스템, 콘솔, 파티션 및 메시지를 처리하기 위한 유틸리티가 포함되어 있습니다.
Vim
편집기를 제공합니다. 클래식 vi 편집기와의 호환성 및 수많은 강력한 기능 때문에 선택되었습니다. 편집기는 많은 사용자들에게 매우 개인적인 선택입니다. 원하는 경우 다른 편집기로 대체할 수 있습니다.
Wheel
파이썬 휠 패키징 표준을 구현한 파이썬 모듈을 제공합니다.
XML::Parser
Expat과 인터페이스를 제공하는 Perl 모듈입니다.
XZ Utils
파일 압축 및 해제를 위한 프로그램이 포함되어 있습니다. 일반적으로 사용 가능한 가장 높은 압축을 제공하며 XZ 또는 LZMA 형식의 패키지를 압축 해제하는 데 유용합니다.
Zlib
일부 프로그램에서 사용하는 압축 및 압축 해제 루틴이 포함되어 있습니다.
Zstd
일부 프로그램에서 사용하는 압축 및 압축 해제 루틴을 제공합니다. 높은 압축률과 매우 광범위한 압축/속도 관련 선택을 제공합니다.