LFS 11

[LFS16] Tar 패키지 빌드

1. Tar 패키지 역할Tar의 역할은 아래와 같다.아카이브(Archive) : 여러 개의 파일과 디렉토리 구조를 깨뜨리지 않고, 하나의 파일(.tar)로 묶어주는 역할만 한다.압축(Compression) : 여기에 gzip이나 xz같은 친구들이 달라붙어 용량을 줄여주는 것LFS에서의 역할 : 나중에 chroot로 진짜 루트 권한 환경에 들어갔을 때, 거기서 새로운 패키지 소스를 풀기 위해 가장 먼저 필요한 도구 2. Tar 패키지 빌드 1. 소스 준비 및 이동 (lfs 유저)cd $LFS/sourcestar -xvf tar-1.35.tar.xzcd tar-1.35 2. 설정 ./configure --prefix=/usr \ --host=$LFS..

리눅스/LFS 2026.04.27

[LFS15] sed 패키지 빌드

1. Sed의 역할sed는 파일을 직접 열어 수정하는 일반적인 에디터(Vim, Nano)와는 작동 방식이 완전히 다르다.비파괴적인 편집 : 원본 파일을 건드리지 않고, 터미널로 출력되는 스트림을 가공해서 보여준다.(물론 -i 옵션을 쓰면 파일도 직접 고친다.)패턴 매칭 : 특정 단어가 들어간 줄만 지우거나, 정규 표현식을 사용해 복잡한 문자열 패턴을 순식간에 바꿀 수 있다.2. Sed 패키지 설치 1. 소스 준비 및 이동 (lfs 유저) cd $LFS/sourcestar -xvf sed-4.9.tar.xzcd sed-4.9 2. 설정./configure --prefix=/usr \ --host=$LFS_TGT \ ..

리눅스/LFS 2026.04.27

[LFS13] Perl 패키지 빌드

1. Perl 패키지 역할LFS에서 perl 패키지의 역할은 단순한 언어가 아니라, 시스템 빌드와 테스트를 지원하는 핵심 도구입니다.주요 역할은 아래와 같습니다.빌드 지원(Build Support)configure, make 과정에서 Perl 스크립트 실행자동화된 빌드 절차 수행예:일부 패키지의 configure 단계에서 perl 필요테스트 자동화(Test Suite 실행)make check 수행 시 Perl 기반 테스트 실행빌드된 프로그램의 정상 동작 검증LFS에서 "정상 시스템" 만들려면 테스트 통과가 핵심텍스트 처리 및 스크립팅로그 분석, 문자열 처리, 파일 파싱빌드 과정 중 데이터 가공정규표현식(regex) 처리에 매우 강함2. Perl 패키지의 구성LFS에서 설치되는 Perl 패키지는 단순 실행..

리눅스/LFS 2026.04.21

[LFS10] 리눅스 탐색기 findutils 빌드

안녕하세요 10번째 시간입니다. 이번 시간에는 리눅스 시스템에서 탐색기 역할을 하는 findutils를 빌드해 보겠습니다.빌드하기 앞서 findutils의 역할과 구성에 대해 알아봅시다. 1. findutils의 역할Findutils는 리눅스 시스템에서 파일과 디렉토리를 찾아내는 '탐색기'역할을 합니다. 단순히 이름을 검색하는 것을 넘어, 파일의 속성(권한, 크기, 시간 등)을 조합해 복잡한 탐색을 수행하는 도구들의 모음입니다. 2. findutils의 구성이 패키지는 크게 세 가지 핵심 도구로 구성되어 있으며, 각각의 역할이 매우 뚜렷합니다.find : 실시간 탐색(Real-time) 역할을 하며, 현재 디렉토리 트리를 직접 뒤져서 조건에 맞는 파일을 찾습니다. 가장 정교합니다.locate : 데이터베..

리눅스/LFS 2026.03.18

[LFS8] 파일 및 디렉토리 검사를 위한 Diffutils 빌드

안녕하세요 이번 시간에는 Diffutils를 빌드해 보았습니다.빌드하기 앞서 Diffutils의 역할과 구성에 대해 알아봅시다. 1. Diffutils의 역할 Diffutils(GNU Diffutils)는 파일 간의 차이점을 비교하고 분석하는 도구 모음입니다.주로 프로그래밍 코드의 변경 사항을 확인하거나 두 문서의 다른 부분을 찾아낼 때 사용합니다.파일 비교 및 분석 : 두 파일의 내용을 한 줄씩 대조하여 추가, 삭제, 수정된 부분을 식별합니다.패치(Patch) 생성 : 원본 파일과 수정된 파일의 차이점만 기록한 '패치 파일'을 만들어, 다른 사용자가 해당 변경 사항을 자신의 코드에 쉽게 적용할 수 있습니다.디렉토리 대조 : 개별 파일뿐만 아니라 두 디렉토리 전체를 비교하여 파일 구성의 차이나 동일한 이..

리눅스/LFS 2026.03.04

[LFS7] 기본적인 명령어의 패키지 Coreutils 빌드

안녕하세요 이번 시간에는 Coreutils를 빌드해 보겠습니다.빌드하기 앞서 Coretuils의 역할과 구성에 대해 한번 알아보고 가시겠습니다. 1. Coreutils의 역할Coreutils는 매일 사용하는 ls, cp, mv, rm, cat, mkdir 같은 가장 기본적인 명령어 100여 개가 모여 있는 패키지입니다.이게 없으면 리눅스는 아무런 작업도 할 수 없는 빈 껍데기에 불과하죠.앞서 Bash를 빌드할때 External(외장) 명령어에 대하여 잠깐 다뤄 본적이 있습니다.네, 바로 이 Coreutils가 외장명령어 ls, cp, mv 등을 모두 /usr/bin 폴더 안에 각각 별도의 실행 파일(Binary)로 존재합니다.따라서, Bash에서 ls를 치면, Bash는 자신의 내장 명령어 목록에 ls..

리눅스/LFS 2026.02.25

[LFS6] 리눅스 시스템의 기본 쉘 Bash 빌드

안녕하세요 이번 시간에는 Bash를 빌드해 보겠습니다. 빌드하기 앞서 Bash의 역할과 구성에 대해 한번 알아보고 가보시죠 1. Bash의 역할Bash(Bourne Again Shell)는 단순히 명령어를 입력받는 창이 아닌, 다음과 같은 중추적인 역할을 합니다.명령어 해석기(Command Interpreter) : 사용자가 ls, cd, make 같은 명령어를 치면, 해당 프로그램이 어디 있는지 찾아서 실행시키고 그 결과를 다시 화면에 보여줍니다.스크립트 언어(Scripting Language): 반복되는 작업을 자동화할 수 있는 프로그래밍 기능을 제공합니다. LFS 빌드할 때 쓰는 명령어 묶음들도 하나의 거대한 Bash 스크립트라고 볼 수 있습니다.환경 관리자(Environment Manager):..

리눅스/LFS 2026.02.11

[LFS4] Glibc(GNU C Library) 빌드 : 시스템의 심장을 뛰게 해보자

1. OS의 심장 Glibc지난 포스팅에서 시스템의 '신경망'인 Linux API Headers를 깔았따면, 이번에는 그 신경망을 통해 실제로 명령을 전달하고 몸을 움직이게 할 심장, 즉 Glibc(GNU C Library)를 빌드할 차례입니다.Glibc는 리눅스 시스템에서 가장 핵심적인 라이브러리입니다. 우리가 쓰는 거의 모든 C/C++ 프로그램은 이 녀석 없이는 화면에 글자 하나 출력하지 못하고, 메모리 한 바이트도 쓰지 못합니다. 특히 이번에는 32/64비트 모두를 아우르는 Multilib 환경이기에 설정이 더욱 까다로웠던것 같습니다. 2. Glibc 빌드 과정 2.1 환경 설정Glibc는 다른 빌드와 마찬가지로 소스 폴더와 빌드 폴더를 철저히 분리해야 합니다.아래와 같은 옵션으로 크로스 컴파일러 ..

리눅스/LFS 2026.01.27

[LFS3]첫 번째 트러블 슈팅과 Linux API Headers 빌드

1. LFS는 호락호락하지 않다.Binutils와 GCC Pass 1이라는 큰 산을 넘었다고 생각했는데, 예상치 못한 곳에서 발목을 잡혔습니다.갑자기 사라진 sources폴더, 그리고 권한 오류까지. 문제가 생겼을때 이를 어떻게 분석하고 해결했는지 오늘은 그 첫 번째 삽질과 해결 기록에 대해 작성해 보겠습니다. 2. 트러블 슈팅 #1: 사라진 $LFS/sources와 자동 마운트GCC 빌드 후, Ubuntu를 다시 켰을 때, 작업하던 소스 폴더들이 보이지 않는 당황스러운 상황을 마주했습니다.환경 변수가 꺼졌나? 싶어서 확인을 해봤는데, echo $LFS를 하면 /mnt/lfs가 정상적으로 출력되는것을 확인하고, 환경변수의 문제는 아니구나 판단을 내렸스브니다. 원인을 다시 분석해봤는데, 환경 변수가 아니기..

리눅스/LFS 2026.01.26

[LFS2]Binutils와 GCC Pass 1 빌드 : 독자적 진화를 위한 첫걸음

1. 왜 호스트의 도구를 그대로 쓰지 않는가?지난 포스팅에서 Ubuntu(Host)라는 든든한 작업대를 마련하고, LFS가 세워질 터를 닦았습니다.이제 본격적으로 벽돌을 쌓을 차례인데, 여기서 한 가지 의문이 생깁니다."이미 우분투에서 잘 작동하는 gcc와 ld가 있는데, 왜 굳이 똑같은 도구를 또 빌드해야 하는가?" 이 질문에 대한 답이 바로 LFS의 핵심인 '독립성'과 '순수성'에 있습니다. 1.1 툴체인(Toolchain) 지금 만드는 것은 최종적인 OS가 아닙니다. 최종 OS를 만들기 위해 잠시 빌려 쓰는 임시 시스템(Temporary System)입니다.호스트 시스템의 컴파일러는 호스트 고유 라이브러리 경로(/usr/lib 등)에 강하게 결합되어 있습니다.만약 이를 그대로 사용하여 LFS를 빌드..

리눅스/LFS 2026.01.20