# 리눅스 프롬 스크래치

> Clean Markdown view of GeekNews topic #26032. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=26032](https://news.hada.io/topic?id=26032)
- GeekNews Markdown: [https://news.hada.io/topic/26032.md](https://news.hada.io/topic/26032.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2026-01-22T11:37:15+09:00
- Updated: 2026-01-22T11:37:15+09:00
- Original source: [linuxfromscratch.org](https://www.linuxfromscratch.org/lfs/view/stable/)
- Points: 6
- Comments: 1

## Summary

**Linux From Scratch 12.4**는 사용자가 리눅스 시스템을 완전히 **소스 코드에서 직접 빌드**하도록 안내하는 매뉴얼로, 최신 커널 6.16.1과 GCC 15.2.0, Glibc 2.42를 포함합니다. 크로스 툴체인 구성부터 부트 가능한 시스템 완성까지의 전 과정을 세밀히 다루며, 리눅스의 내부 구조를 학습하거나 맞춤형 배포판을 제작하려는 개발자에게 실질적인 학습 경로를 제공합니다.

## Topic Body

- 사용자가 **리눅스 시스템을 직접 소스 코드로부터 구축**하도록 안내하는 단계별 매뉴얼  
- **버전 12.4**는 2025년 9월 1일에 공개되었으며, 최신 **커널 6.16.1**과 **GCC 15.2.0**, **Glibc 2.42** 등을 포함  
- 시스템 빌드를 위한 **크로스 툴체인 구성**, **임시 도구 설치**, **부트 가능한 시스템 완성**까지 전 과정을 다룸  
- 각 장은 **패키지 목록, 빌드 순서, 테스트 절차, 시스템 설정**을 세밀히 구분해 제공  
- 개발자와 시스템 엔지니어가 **리눅스 내부 구조를 학습하고 맞춤형 배포판을 제작**하는 데 중요한 자료  

---
### 개요
- **Linux From Scratch(LFS)** 는 사용자가 기존 배포판 없이 리눅스 시스템을 직접 빌드하도록 설계된 프로젝트  
  - 모든 구성요소를 소스 코드에서 컴파일하고 설정하는 과정을 단계별로 설명  
  - **Gerard Beekmans**가 창시하고, **Bruce Dubbs**가 관리 편집을 담당  
- 문서는 **HTML 기반 온라인 매뉴얼** 형태로 제공되며, 각 단계별로 세부 링크와 패키지 버전이 명시됨  

### 버전 정보
- 현재 안정 버전은 **12.4**, 2025년 9월 1일 공개  
- 저작권은 1999–2025년 **Gerard Beekmans**에게 있음  
- 최신 릴리스에는 **Linux 6.16.1**, **GCC 15.2.0**, **Glibc 2.42**, **Python 3.13.7** 등 주요 패키지 포함  

### 문서 구조
- 문서는 **서문, 빌드 준비, 크로스 툴체인 구축, 시스템 빌드, 부팅 설정, 부록**의 5개 주요 파트로 구성  
  - **서문(Preface)** : 대상 독자, 필요 지식, 표준 준수, 패키지 선택 이유 등 설명  
  - **빌드 준비(Preparing for the Build)** : 호스트 시스템 요구사항, 파티션 생성, 환경 변수 설정 등 포함  
  - **크로스 툴체인 및 임시 도구 빌드(Building the LFS Cross Toolchain and Temporary Tools)** : Binutils, GCC, Glibc 등 핵심 컴파일러 구성  
  - **LFS 시스템 빌드(Building the LFS System)** : 주요 시스템 소프트웨어 설치 및 설정  
  - **부팅 가능 시스템 완성(Making the LFS System Bootable)** : 커널 컴파일과 GRUB 설정  
  - **부록(Appendices)** : 약어, 의존성, 부트스크립트, 라이선스 등 포함  

### 주요 구성 요소
- **패키지 목록**에는 100개 이상의 핵심 유틸리티와 라이브러리가 포함  
  - 예: **Coreutils 9.7**, **Bash 5.3**, **Perl 5.42.0**, **Python 3.13.7**, **OpenSSL 3.5.2**, **Systemd Udev 257.8**  
- 각 패키지별로 **설치 절차, 테스트, 정리(cleanup)** 단계가 구체적으로 나열  
- **SysVinit 3.14** 기반의 부트스크립트와 **GRUB 2.12** 부트로더 설정 포함  

### 시스템 설정 및 부팅
- **9장(System Configuration)** 에서는 네트워크, 로케일, 장치 관리, 입력 설정 등을 다룸  
- **10장(Making the LFS System Bootable)** 에서는 `/etc/fstab` 작성, 커널 빌드, GRUB 설정 과정을 포함  
- **11장(The End)** 에서는 시스템 재부팅과 후속 학습 자료 안내  

### 부록 및 라이선스
- **부록 D**에는 `boot` 및 `sysconfig` 스크립트 버전 20250827이 포함  
- **부록 F**는 **Creative Commons**와 **MIT License** 두 가지 라이선스를 명시  
- **의존성 목록**, **용어집**, **감사의 글** 등 참고 자료 제공  

### 의의
- LFS는 리눅스의 **구성 원리와 빌드 체계**를 직접 체험할 수 있는 교육용·연구용 프로젝트  
- 시스템 관리자, 배포판 개발자, 보안 연구자에게 **최소 구성 리눅스 환경 구축의 표준 참고서**로 활용됨

## Comments



### Comment 49673

- Author: neo
- Created: 2026-01-22T11:37:15+09:00
- Points: 1

###### [Hacker News 의견들](https://news.ycombinator.com/item?id=46709727) 
- 리눅스 시스템의 내부를 배우기 위해 **Linux From Scratch(LFS)** 를 직접 구축했던 경험을 이야기함  
  1999년에 시작해 2001년까지 사용했는데, 의존성 관리와 재컴파일이 너무 힘들어 포기했음  
  당시엔 문서가 지금처럼 자세하지 않아 직접 추적해야 했고, obscure한 패키지도 많았음  
  그래도 Slackware로 넘어가며 XFree86, GNOME 같은 패키지를 직접 빌드하고 기여했던 시절이 즐거웠음  
  시간이 허락한다면 꼭 해보길 권함. 리눅스를 보는 눈이 완전히 달라짐
  - [systemd 버전의 LFS](https://www.linuxfromscratch.org/lfs/view/stable-systemd/)도 있고, [Gaming LFS](https://www.linuxfromscratch.org/index.html)나 자동 빌드 시스템 버전도 제공됨
  - 나도 1999년쯤 시도했는데, 당시엔 단순히 “이 명령어를 입력하라” 식으로 설명이 부족했음  
    지금은 가상머신에서 다시 시도해볼 만한 가치가 있을 것 같음
  - **Wayland**는 사실 단순함. systemd보다 설정할 게 적음  
    LFS/BLFS의 진짜 힘은 자신의 용도에 맞게 시스템을 조정할 수 있다는 점임  
    나는 4000개 프로젝트를 **Ruby 스크립트**로 추적하고 있음. gem-coop이 상용 rubygems.org의 대안이 되면 내 프로젝트를 다시 공개할 예정임
  - 나도 고등학생 때(2005년쯤) 해봤는데, 수십 개 프로젝트를 빌드하며 시스템이 맞물리는 걸 배우는 경험이 정말 훌륭했음  
    완성한 시스템을 실제로 쓰진 않았지만, 몇 번의 저녁 시간을 보낸 보람이 있었음
  - 그 시절엔 의존성을 직접 추적해야 했는데, 지금은 **ChatGPT** 같은 걸로 바로 답을 얻을 수 있음  
    정보 접근성이 좋아진 게 리눅스 성장의 큰 이유라고 생각함
- 이 프로젝트를 볼 때마다 **업보트**를 누름  
  어릴 때 LFS를 만들며 컴퓨터의 가장 낮은 레벨까지 접근 가능하다는 걸 배웠음
  - 나도 1999년에 10대 시절에 해봤는데, 문제를 해결할 만큼 똑똑하면서도 시간이 많았던 완벽한 시기였음
  - 지금은 컴파일해야 할 게 더 많아졌음. **LLVM**, cmake, meson 같은 것들이 추가되어 빌드 시간이 길어졌지만 여전히 잘 작동함
- 누군가 리눅스 배포판의 본질을 이해하고 싶다고 하면 항상 LFS를 추천함
  - 나도 리눅스 지식의 상당 부분을 여기서 배웠음  
    다만 **Gentoo**나 **Arch**도 비슷한 수준의 학습 효과를 주면서 설치 시간은 훨씬 짧음
  - LFS 덕분에 OS보다 **sed, gcc CFLAGS, 부트스트래핑**을 더 많이 배운 느낌임
- [“20 Years of Gentoo” 블로그](https://blog.nawaz.org/posts/2023/May/20-years-of-gentoo/)에서 인용된 글을 공유함  
  많은 사람들이 “Gentoo 말고 LFS로 가겠다”고 하지만 대부분 중간에 포기하거나 소스 기반 배포판을 영영 싫어하게 됨  
  Slackware와 LFS를 **Haskell**에 비유하며, 너무 극단으로 가면 비생산적이 된다고 표현함
  - Haskell은 어렵지만 Slackware와 LFS는 단순함. 비교가 맞지 않다고 생각함  
    LFS는 문서가 풍부하고, Slackware는 시대에 밀렸지만 Patrick의 노력은 대단했음
  - 나도 부분적으로 **망가진 경험**이 있음. 네트워크 스택이 프로그램에 따라 다르게 작동했는데, 그 뒤로는 다시 시도하지 않음
- 2006년쯤 LFS 책의 종이판을 샀음  
  시애틀의 PC 재활용 창고에서 **386/486 PC 부품**을 주워 모아 조립하고 리눅스를 설치했음  
  그렇게 만든 Frankenstein 컴퓨터들로 리눅스를 배우며 성장했음
- 25년 넘게 리눅스를 써온 입장에서, 지금은 LFS를 직접 빌드하는 건 **시간 낭비**라고 생각함  
  RPM 기반 시스템을 쓰면 dnf의 트랜잭션 기능으로 설치 이력과 롤백이 가능해 관리가 훨씬 편함
  - LFS는 학습을 위한 **훈련 과정**임. 쉬운 게 목적이 아니라 OS의 가장 낮은 레벨을 드러내는 게 핵심임
  - LFS의 가치는 완성된 시스템이 아니라 **이해 과정**에 있음  
    한 번 책을 따라가며 OS를 만들면, 다른 배포판의 차이점을 이해하기 쉬워지고 시스템에 대한 **소유감**이 생김
  - RPM 없이도 비슷한 기능을 구현할 수 있음. 나는 **버전 관리된 AppDir**을 쓰고, NixOS는 해시된 디렉터리와 nix로 상태를 보장함
  - “편한 길만 가라”는 조언에 대해, 새로운 걸 시도해보려는 의지를 꺾지 말자는 반응을 보임
- 여러 댓글에서 언급된 **BLFS(Beyond Linux From Scratch)** 는 [이 링크](https://www.linuxfromscratch.org/blfs/view/stable-systemd/index.html)에서 볼 수 있음
- 2014년에 **Cross-Linux From Scratch**를 만들어 Raspberry Pi용으로 빌드했음  
  ARMv6용 크로스 컴파일이라 매우 어려웠지만 배운 게 많았음  
  Jenkins로 빌드 자동화를 하고, bash 스크립트와 Makefile로 시스템을 구성했음  
  최종 이미지가 40MB 정도였는데, 그 자체로 뿌듯했음
- [glibc 테스트 챕터](https://www.linuxfromscratch.org/lfs/view/stable/chapter08/glibc.html)를 읽으며  
  “테스트를 절대 건너뛰지 말라”는 문구가 인상 깊었음  
  glibc도 일부 테스트 실패를 허용하니, 나도 내 소프트웨어 테스트에 비슷한 문구를 넣었음  
  “이 단계를 어기면 시스템이 망가질 수 있음”이라는 경고를 보고 **Dark Souls 같은 리눅스 배포판** 같다고 느꼈음
  - 맞음, 정말 그런 느낌임
- LFS/BLFS는 완벽하진 않지만 리눅스의 **지식과 응용**을 보여주는 좋은 예시임  
  커널을 새로 컴파일할 때 옵션이 너무 많아 힘들지만, 이런 학습 과정이 리눅스의 매력임  
  다른 OS, 특히 Windows에서는 보기 힘든 문화임  
  혹시 BSD 버전의 LFS가 있는지 궁금함
