양쪽 이전 판 이전 판 | |
linuxfromscratch:12.1:038-glibc-2.39 [2024/06/14 16:41] – [5.5.1. Glibc 설치] baecy | linuxfromscratch:12.1:038-glibc-2.39 [2024/06/14 16:52] (현재) – baecy |
---|
---- | ---- |
| |
====== 5.5. Glibc-2.39 ======= | ===== 5.5. Glibc-2.39 ====== |
| |
Glibc 패키지에는 기본 C 라이브러리가 포함되어 있습니다. 이 라이브러리는 메모리 할당, 디렉터리 검색, 파일 열기 및 닫기, 파일 읽기 및 쓰기, 문자열 처리, 패턴 일치, 연산 등을 위한 기본 루틴을 제공합니다. | Glibc 패키지에는 기본 C 라이브러리가 포함되어 있습니다. 이 라이브러리는 메모리 할당, 디렉터리 검색, 파일 열기 및 닫기, 파일 읽기 및 쓰기, 문자열 처리, 패턴 일치, 연산 등을 위한 기본 루틴을 제공합니다. |
----- | ----- |
| |
===== 5.5.1. Glibc 설치 ===== | ==== 5.5.1. Glibc 설치 ==== |
| |
먼저 LSB 준수를 위한 심볼릭 링크를 생성합니다. 또한 x86_64의 경우 동적 라이브러리 로더가 제대로 작동하는 데 필요한 호환성 심볼릭 링크를 생성합니다. | 먼저 LSB 준수를 위한 심볼릭 링크를 생성합니다. 또한 x86_64의 경우 동적 라이브러리 로더가 제대로 작동하는 데 필요한 호환성 심볼릭 링크를 생성합니다. |
</code> | </code> |
| |
==== 설정 옵션 설명 ==== | === configure 옵션 설명 === |
| |
* //**--host=$LFS_TGT**//, //**--build=$(../scripts/config.guess)**// \\ 이 두 스위치는 Glibc의 빌드 시스템이 ''$LFS/tools''의 크로스 링커와 크로스 컴파일러를 사용하여 크로스 컴파일되도록 구성하는 것입니다. | * //**--host=$LFS_TGT**//, //**--build=$(../scripts/config.guess)**// \\ 이 두 스위치는 Glibc의 빌드 시스템이 ''$LFS/tools''의 크로스 링커와 크로스 컴파일러를 사용하여 크로스 컴파일되도록 구성하는 것입니다. |
* //**--enable-kernel=4.19**// \\ Glibc가 4.19 이상의 Linux 커널을 지원하여 라이브러리를 컴파일하도록 지시합니다. 이전 커널 작동에 대한 해결 방법은 활성화되지 않습니다. | * //**--enable-kernel=4.19**// \\ Glibc가 4.19 이상의 Linux 커널을 지원하여 라이브러리를 컴파일하도록 지시합니다. 이전 커널 작동에 대한 해결 방법은 활성화되지 않습니다. |
* //**--with-headers=$LFS/usr/include**// \\ Glibc가 $LFS/usr/include 디렉터리에 최근에 설치된 헤더를 기준으로 컴파일하여 커널에 어떤 기능이 있는지 정확히 파악하고 그에 따라 최적화할 수 있습니다. | * //**--with-headers=$LFS/usr/include**// \\ Glibc가 $LFS/usr/include 디렉터리에 최근에 설치된 헤더를 기준으로 컴파일하여 커널에 어떤 기능이 있는지 정확히 파악하고 그에 따라 최적화할 수 있습니다. |
* //**libc_cv_slibdir=/usr/lib**// \\ 이렇게 하면 64비트 시스템에서 라이브러리가 기본 /lib64 대신 /usr/lib에 설치됩니다. | * //**libc_cv_slibdir=/usr/lib**// \\ 64비트 시스템에서 라이브러리가 /lib64 대신 /usr/lib에 설치됩니다. |
* //**--disable-nscd**// \\ 더 이상 사용되지 않는 네임 서비스 캐시 데몬을 빌드하지 않습니다. | * //**--disable-nscd**// \\ 더 이상 사용되지 않는 네임 서비스 캐시 데몬을 빌드하지 않습니다. |
| |
<WRAP alert round center 90%> | <WRAP alert round center 90%> |
**경고** \\ | **경고** \\ |
''LFS''가 올바르게 설정되지 않았고 권고에도 불구하고 //root//로 빌드하는 경우 다음 명령은 새로 빌드한 Glibc를 호스트 시스템에 설치하므로 거의 확실하게 사용할 수 없게 됩니다. 따라서 다음 명령을 실행하기 전에 환경이 올바르게 설정되어 있고 자신이 //root//가 아닌지 다시 확인((echo $LFS && id -un))하세요. | ''LFS''가 올바르게 설정되지 않았고 권고에도 불구하고 //root//로 빌드하는 경우 다음 명령은 새로 빌드한 Glibc를 호스트 시스템에 설치하므로 거의 확실하게 호스트 시스템을 사용 불가한 상태로 만듭니다. 따라서 다음 명령을 실행하기 전에 환경이 올바르게 설정((echo $LFS))되어 있고 자신이 //root//가 아닌지 다시 확인((echo $LFS && id -un))하세요. |
</WRAP> | </WRAP> |
| |
=== make install 옵션 설명 === | === make install 옵션 설명 === |
| |
* //DESTDIR=$LFS// \\ ''DESTDIR'' make 변수는 거의 모든 패키지에서 패키지가 설치될 위치를 정의하는 데 사용됩니다. 설정하지 않으면 기본값은 루트(/) 디렉터리입니다. 여기서는 패키지가 [[.:061-entering_the_chroot_environment|7.4절 "루트 환경으로 들어가기"]]의 루트 디렉터리가 될 ''$LFS''에 설치되도록 지정합니다. | * //DESTDIR=$LFS// \\ ''DESTDIR'' make 변수는 거의 모든 패키지에서 패키지가 설치될 위치를 정의하는 데 사용됩니다. 설정하지 않으면 기본값은 루트(/) 디렉터리입니다. 패키지를 [[.:061-entering_the_chroot_environment|7.4절 "루트 환경으로 들어가기"]]에서 루트 디렉터리가 될 ''$LFS''에 설치되도록 지정합니다. |
| |
''ldd'' 스크립트에서 실행 로더의 하드코딩된 경로를 수정합니다. | ''ldd'' 스크립트에 하드코딩되어 있는 실행 로더의 경로를 수정합니다. |
| |
<code bash> | <code bash> |
<WRAP alert center round 90%> | <WRAP alert center round 90%> |
**주의** \\ | **주의** \\ |
이 시점에서 새 툴체인의 기본 기능(컴파일 및 연결)이 예상대로 작동하는지 확인해야 합니다. 점검을 수행하려면 다음 명령을 실행하세요. | 이 시점에서 새 툴체인의 기본 기능(컴파일 및 연결)이 예상대로 작동하는지 확인해야 합니다. 다음과 같이 점검합니다. |
| |
<code bash> | <code bash> |
</code> | </code> |
| |
모든 것이 올바르게 작동하면 오류가 없어야 하며 마지막 명령의 출력은 다음과 같은 형식이 됩니다. | 모든 것이 올바르게 작동하면 오류가 없어야 하며 마지막 명령의 출력은 다음과 같습니다. |
| |
<code cmdout=1> | <code cmdout=1> |
32비트 컴퓨터의 경우 인터프리터 이름은 ''lib/ld-linux.so.2''가 됩니다. | 32비트 컴퓨터의 경우 인터프리터 이름은 ''lib/ld-linux.so.2''가 됩니다. |
| |
출력이 위와 다르거나 전혀 출력되지 않는다면 문제가 있는 것입니다. 각 단계를 조사하고 역추적하여 문제가 있는 위치를 찾아서 해결하세요. 더 진행하기 전에 이 문제를 해결해야 합니다. | 출력이 위와 다르거나 전혀 출력되지 않는다면 문제가 있는 것입니다. 각 단계를 조사하고 역추적하여 문제를 찾아서 해결하세요. 더 진행하기 전에 반드시 이 문제를 해결해야 합니다. |
| |
모든 문제가 해결되면 테스트 파일을 정리합니다. | 모든 문제가 해결되면 테스트 파일을 정리합니다. |
----- | ----- |
| |
이 패키지에 대한 자세한 내용은 [[.:075-glibc-2.39|섹션 8.5.3, "Glibc의 내용"]]에 있습니다. | 이 패키지에 대한 자세한 내용은 [[.:075-glibc-2.39#8.5.3. Glibc 패키지 구성|8.5.3, "Glibc 패키지 구성"]]에 있습니다. |