문서의 이전 판입니다!


Linux From Scratch - Version 12.1-systemd
Preface
이전 위로 / 처음으로 다음
LFS와 표준 표기법

vi. 패키지 선정 이유

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
    많은 테스트 모음에서 사용되는 도구 명령 언어가 포함되어 있습니다.
  • Texinfo
    info 파일 읽기, 쓰기 및 변환을 위한 프로그램을 제공합니다. 많은 LFS 패키지의 설치 절차에 사용됩니다.
  • Util-linux
    기타 유틸리티 프로그램이 포함되어 있습니다. 여기에는 파일 시스템, 콘솔, 파티션 및 메시지를 처리하기 위한 유틸리티가 포함되어 있습니다.
  • Vim
    편집기를 제공합니다. 클래식 vi 편집기와의 호환성 및 수많은 강력한 기능 때문에 선택되었습니다. 편집기는 많은 사용자들에게 매우 개인적인 선택입니다. 원하는 경우 다른 편집기로 대체할 수 있습니다.
  • Wheel
    파이썬 휠 패키징 표준의 참조 구현인 파이썬 모듈을 제공합니다.
  • XML::Parser
    Expat과 인터페이스를 제공하는 Perl 모듈입니다.
  • XZ Utils
    파일 압축 및 압축 해제를 위한 프로그램이 포함되어 있습니다. 일반적으로 사용 가능한 가장 높은 압축을 제공하며 XZ 또는 LZMA 형식의 패키지를 압축 해제하는 데 유용합니다.
  • Zlib
    일부 프로그램에서 사용하는 압축 및 압축 해제 루틴이 포함되어 있습니다.
  • Zstd
    일부 프로그램에서 사용하는 압축 및 압축 해제 루틴을 제공합니다. 높은 압축률과 매우 광범위한 압축/속도 관련 선택을 제공합니다.
  • linuxfromscratch/12.1/006-rationale_for_packages_in_the_book.1715479102.txt.gz
  • 마지막으로 수정됨: 2024/05/12 01:58
  • 저자 baecy