-
LFS(밑바닥부터 시작하는 리눅스)에 포함된 패키지밑바닥부터 시작하는 리눅스(Linux From Scratch) 2024. 12. 10. 22:38
패키지를 선택한 이유
Linux From Scratch의 목표는 완전하고 재사용 가능한 기초 수준의 시스템을 구축하는 것입니다. 이 시스템은 스스로를 복제할 수 있는 모든 패키지를 포함하며, 사용자가 선택한 방식으로 더 완성된 시스템을 커스터마이징할 수 있는 최소한의 기반을 제공합니다.
그러나 LFS는 가능한 가장 작은 시스템을 목표로 하지는 않습니다. LFS에는 엄격히 필수는 아니지만 중요한 패키지들이 포함되어 있습니다. 아래는 책에서 다루는 각 패키지를 포함한 이유를 설명합니다.
기본 패키지 설명
- Acl: 파일 및 디렉토리에 대한 세분화된 액세스 권한을 정의하기 위해 사용되는 ACL 관리 도구를 제공합니다.
- Attr: 파일 시스템 객체의 확장 속성을 관리하는 프로그램.
- Autoconf: 소스 코드 자동 구성 스크립트를 생성하는 도구.
- Automake: 템플릿에서 Makefile을 생성하는 도구.
- Bash: Bourne Shell 인터페이스를 제공하며, 호환성과 기능성으로 인해 선택되었습니다.
- Bc: 리눅스 커널 빌드에 필요한 고정밀 수치 처리 언어.
- Binutils: 오브젝트 파일 처리에 필요한 링커와 어셈블러를 포함.
- Bison: GNU 버전의 yacc로, 여러 LFS 프로그램 빌드에 필요.
- Bzip2: 파일 압축 및 압축 해제를 위한 프로그램.
- Check: 다른 프로그램의 테스트를 위한 테스트 하네스 제공.
- Coreutils: 파일 및 디렉토리를 관리하는 필수 명령어 모음.
- DejaGNU: 프로그램 테스트를 위한 프레임워크.
- Diffutils: 파일 또는 디렉토리의 차이점을 보여주는 도구로 패치 생성 및 빌드 과정에 사용.
- E2fsprogs: ext2, ext3, ext4 파일 시스템 관리 도구.
- Expat: XML 파싱 라이브러리로, XML::Parser Perl 모듈에서 사용.
- Expect: 대화형 프로그램과의 스크립트 대화를 수행하는 도구.
- File: 파일의 유형을 결정하는 유틸리티.
- Findutils: 파일 시스템에서 파일을 검색하는 프로그램.
- Flex: 텍스트에서 패턴을 인식하는 프로그램 생성 도구.
- Gawk: 텍스트 파일 조작을 위한 프로그램으로, awk의 GNU 버전.
- GCC: C, C++ 컴파일러를 포함한 GNU 컴파일러 모음.
- GDBM: GNU 데이터베이스 관리자 라이브러리.
- Gettext: 국제화 및 지역화를 지원하는 유틸리티.
- Glibc: 주요 C 라이브러리로, 리눅스 프로그램 실행에 필수적.
- GMP: 고정밀 수학 라이브러리로, GCC 빌드에 필요.
- Gperf: 완벽한 해시 함수를 생성하는 도구.
- Grep: 파일 검색 도구로, 대부분의 패키지 빌드 스크립트에서 사용.
- Groff: 텍스트를 처리하고 포맷팅하는 프로그램. 주로 man 페이지 포맷팅에 사용.
- GRUB: 가장 유연한 부트로더.
- Gzip: 파일 압축 및 해제 프로그램.
- Iana-etc: 네트워크 서비스 및 프로토콜 데이터를 제공.
- Inetutils: 기본 네트워크 관리 도구.
- Intltool: 소스 파일에서 번역 가능한 문자열을 추출하는 도구.
- IProute2: IPv4 및 IPv6 네트워킹 관리 도구.
- Kbd: 키보드 및 콘솔 폰트 유틸리티.
- Kmod: 커널 모듈 관리 도구.
- Less: 파일 내용을 스크롤하며 볼 수 있는 텍스트 뷰어.
- Libcap: POSIX 1003.1e 기능 지원 라이브러리.
- Libelf: ELF 파일 및 DWARF 데이터 처리를 위한 라이브러리.
- Libffi: 다양한 호출 규칙에 대한 고수준 인터페이스를 제공.
- Libpipeline: 서브프로세스 파이프라인을 유연하게 처리하는 라이브러리.
- Libtool: 공유 라이브러리 관리를 위한 스크립트.
- Libxcrypt: 암호 해싱 라이브러리.
- Linux Kernel: 리눅스 운영 체제의 핵심.
- M4: 일반 텍스트 매크로 처리기.
- Make: 빌드 지침을 관리하는 도구.
- Man-DB: 국제화 기능이 향상된 man 페이지 뷰어.
- Man-pages: 리눅스 기본 man 페이지 콘텐츠.
- Meson: 소프트웨어 빌드 자동화 도구.
- MPC: 복소수 연산을 위한 산술 함수 제공.
- MPFR: 고정밀 산술 함수를 포함.
- Ninja: 빠르고 효율적인 빌드 시스템.
- Ncurses: 터미널 독립적 문자 화면 처리를 위한 라이브러리.
- Openssl: 암호화 관련 도구와 라이브러리.
- Patch: 파일을 수정하거나 생성하는 도구.
- Perl: 여러 패키지 설치와 테스트에 사용되는 인터프리터.
- Pkgconf: 라이브러리 개발을 위한 설정 도구.
- Procps-NG: 프로세스 모니터링 도구.
- Psmisc: 프로세스 정보 표시 도구.
- Python 3: 가독성을 중시하는 프로그래밍 언어.
- Readline: 명령줄 편집 및 히스토리 기능 제공.
- Sed: 파일 편집을 위한 스트림 편집기.
- Shadow: 안전한 암호 관리 도구.
- Sysklogd: 시스템 메시지 로깅 도구.
- SysVinit: 시스템 프로세스의 부모 프로그램.
- Udev: 디바이스 관리자.
- Tar: 아카이빙 및 추출 도구.
- Tcl: 테스트 스위트에서 사용되는 명령 언어.
- Texinfo: info 페이지 처리 도구.
- Util-linux: 파일 시스템, 콘솔, 파티션 관리 유틸리티.
- Vim: 고급 텍스트 편집기.
- Wheel: Python 패키징 표준 구현.
- XML::Parser: Expat과 인터페이스하는 Perl 모듈.
- XZ Utils: 파일 압축/해제 도구.
- Zlib: 압축/해제 루틴 제공.
- Zstd: 높은 압축률을 제공하는 도구.
요약
이 모든 패키지는 LFS 시스템을 빌드하기 위해 선택된 이유가 있으며, 각각 고유한 역할을 합니다. 필요에 따라 추가 또는 수정해 자신만의 시스템을 커스터마이징할 수 있습니다. 😊
'밑바닥부터 시작하는 리눅스(Linux From Scratch)' 카테고리의 다른 글
3일차: 패키지 및 패치 준비 (0) 2024.12.17 2일차: 빌드 준비 작업 번역 (0) 2024.12.17 라즈베리파이에 리눅스(데비안) 설치하기 (0) 2024.12.10 밑바닥부터 시작하는 리눅스 원본 pdf 12.2 (0) 2024.12.07 1일차: 밑바닥부터 시작하는 리눅스 서문과 소개 (0) 2024.12.07