^ Linux From Scratch - Version 12.1-systemd ^^^ ^ Chapter 8. Installing Basic System Software ^^^ |[[.:148-procps-ng-4.0.4|이전]] | [[.:08-installing_basic_system_software|위로]] / [[.:12.1|처음으로]] | [[.:150-e2fsprogs-1.47.0|다음]]| |Procps-ng-4.0.4 | E2fsprogs-1.47.0| ---- ===== 8.79. Util-linux-2.39.3 ===== Util-linux 패키지에는 기타 유틸리티 프로그램이 포함되어 있습니다. 여기에는 파일 시스템, 콘솔, 파티션 및 메시지를 처리하기 위한 유틸리티가 포함되어 있습니다. * **빌드 시간:** 0.5 SBU * **디스크 공간:** 313 MB ---- ==== 8.79.1. Util-linux 설치 ==== 먼저 문제가 발생하는 테스트를 비활성화합니다. sed -i '/test_mkfds/s/^/#/' tests/helpers/Makemodule.am Util-linux 컴파일을 준비합니다. ./configure --bindir=/usr/bin \ --libdir=/usr/lib \ --runstatedir=/run \ --sbindir=/usr/sbin \ --disable-chfn-chsh \ --disable-login \ --disable-nologin \ --disable-su \ --disable-setpriv \ --disable-runuser \ --disable-pylibmount \ --disable-static \ --without-python \ ADJTIME_PATH=/var/lib/hwclock/adjtime \ --docdir=/usr/share/doc/util-linux-2.39.3 disable 및 --without 옵션을 사용하면 LFS에 없는 패키지가 필요하거나 다른 패키지로 설치된 프로그램과 호환되지 않는 빌드 구성 요소에 대한 경고가 표시되지 않습니다. 패키지를 컴파일합니다: make 원하는 경우 //루트가 아닌 사용자//로 테스트 스위트를 실행합니다. **경고** \\ 테스트 스위트를 //root// 사용자로 실행하면 시스템에 해로울 수 있습니다. 실행하려면 현재 실행 중인 시스템에서 커널에 대한 **CONFIG_SCSI_DEBUG** 옵션을 사용할 수 있어야 하며 모듈로 빌드해야 합니다. 커널에 빌드하면 부팅되지 않습니다. 완전한 커버리지를 위해 다른 BLFS 패키지를 설치해야 합니다. 원하는 경우, 이 테스트는 완성된 LFS 시스템으로 부팅하여 실행할 수 있습니다: bash tests/run.sh --srcdir=$PWD --builddir=$PWD chown -R tester . su tester -c "make -k check" 호스트의 커널에 ''CONFIG_CRYPTO_USER_API_HASH'' 옵션이 활성화되어 있지 않거나 SHA256 구현을 제공하는 옵션(예: ''CONFIG_CRYPTO_SHA256'' 또는 CPU가 Supplemental SSE3를 지원하는 경우 ''CONFIG_CRYPTO_SHA256_SSSE3'')이 활성화되지 않으면 //하드링크// 테스트가 실패합니다. 또한 misc: mbsencode의 하위 테스트 2개와 script: replay의 하위 테스트 1개가 실패하는 것으로 알려져 있습니다. 패키지를 설치합니다. make install ---- ==== 8.79.2. Util-linux 패키지 구성 ==== * **설치된 프로그램:** \\ addpart, agetty, blkdiscard, blkid, blkzone, blockdev, cal, cfdisk, chcpu, chmem, choom, chrt, col, colcrt, colrm, column, ctrlaltdel, delpart, dmesg, eject, fallocate, fdisk, fincore, findfs, findmnt, flock, fsck, fsck.cramfs, fsck.minix, fsfreeze, fstrim, getopt, hardlink, hexdump, hwclock, i386 (link to setarch), ionice, ipcmk, ipcrm, ipcs, irqtop, isosize, kill, last, lastb (link to last), ldattach, linux32 (link to setarch), linux64 (link to setarch), logger, look, losetup, lsblk, lscpu, lsipc, lsirq, lsfd, lslocks, lslogins, lsmem, lsns, mcookie, mesg, mkfs, mkfs.bfs, mkfs.cramfs, mkfs.minix, mkswap, more, mount, mountpoint, namei, nsenter, partx, pivot_root, prlimit, readprofile, rename, renice, resizepart, rev, rfkill, rtcwake, script, scriptlive, scriptreplay, setarch, setsid, setterm, sfdisk, sulogin, swaplabel, swapoff, swapon, switch_root, taskset, uclampset, ul, umount, uname26 (link to setarch), unshare, utmpdump, uuidd, uuidgen, uuidparse, wall, wdctl, whereis, wipefs, x86_64 (link to setarch), 및 zramctl * **설치된 라이브러리:** \\ libblkid.so, libfdisk.so, libmount.so, libsmartcols.so, 및 libuuid.so * **설치된 디렉토리:** \\ /usr/include/blkid, /usr/include/libfdisk, /usr/include/libmount, /usr/include/libsmartcols, /usr/include/uuid, /usr/share/doc/util-linux-2.39.3, and /var/lib/hwclock === 간략한 설명 === * **addpart** \\ 리눅스 커널에 새 파티션을 알립니다. * **agetty** \\ tty 포트를 열고 로그인 이름을 묻는 메시지를 표시한 다음 **login** 프로그램을 호출합니다. * **blkdiscard** \\ 장치에서 섹터를 삭제합니다 * **blkid** \\ 블록 장치 속성을 찾아 인쇄하는 명령줄 유틸리티 * **blkzone** \\ 구역화된 스토리지 블록 디바이스를 관리하는 데 사용됩니다. * **blockdev** \\ 사용자가 명령줄에서 블록 디바이스 ioctls를 호출할 수 있도록 합니다. * **cal** \\ 간단한 캘린더를 표시합니다. * **cfdisk** \\ 주어진 장치의 파티션 테이블을 조작합니다. * **chcpu** \\ CPU의 상태를 수정합니다 * **chmem** \\ 메모리를 구성합니다 * **choom** \\ Linux의 메모리가 부족할 때 어떤 프로세스를 먼저 종료할지 결정하는 데 사용되는 OOM 킬러 점수를 표시하고 조정합니다. * **chrt** \\ 프로세스의 실시간 속성을 조작합니다. * **col** \\ 역방향 줄 바꿈 필터링 * **colcrt** \\ 오버스트링, 반줄 등 일부 기능이 없는 터미널에 대해 nroff 출력을 필터링합니다. * **colrm** \\ 지정된 열을 필터링합니다. * **column** \\ 주어진 파일을 여러 열로 포맷합니다. * **ctrlaltdel** \\ Ctrl+Alt+Del 키 조합의 기능을 하드 리셋 또는 소프트 리셋으로 설정합니다. * **delpart** \\ Linux 커널에 파티션을 제거하도록 요청합니다. * **dmesg** \\ 커널 부팅 메시지를 덤프합니다 * **eject** \\ 이동식 미디어를 꺼냅니다 * **fallocate** \\ 파일에 공간을 미리 할당합니다. * **fdisk** \\ 지정된 장치의 파티션 테이블을 조작합니다. * **fincore** \\ 코어에서 파일 콘텐츠의 페이지 수를 계산합니다. * **findfs** \\ 레이블 또는 UUID(범용 고유 식별자)로 파일 시스템을 찾습니다. * **findmnt** \\ mountinfo, fstab, mtab 파일을 다루기 위한 libmount 라이브러리에 대한 명령줄 인터페이스입니다. * **flock** \\ 파일 잠금을 획득한 다음 잠금이 유지된 상태에서 명령을 실행합니다. * **fsck** \\ 파일 시스템을 검사하고 선택적으로 복구하는 데 사용됩니다. * **fsck.cramfs** \\ 지정된 디바이스의 Cramfs 파일 시스템에서 일관성 검사를 수행합니다. * **fsck.minix** \\ 지정된 장치에서 Minix 파일 시스템에서 일관성 검사를 수행합니다. * **fsfreeze** \\ FIFREEZE/FITHAW ioctl 커널 드라이버 작업을 위한 매우 간단한 래퍼입니다. * **fstrim** \\ 마운트된 파일 시스템에서 사용되지 않는 블록을 삭제합니다. * **getopt** \\ 주어진 명령줄의 옵션을 파싱합니다 * **hardlink** \\ 하드 링크를 생성하여 중복 파일을 통합합니다. * **hexdump** \\ 주어진 파일을 16진수, 10진수, 8진수 또는 ASCII로 덤프합니다. * **hwclock** \\ 실시간 시계(RTC) 또는 기본 입출력 시스템(BIOS) 시계라고도 하는 시스템의 하드웨어 클럭을 읽거나 설정합니다. * **i386** \\ setarch에 대한 심볼릭 링크 * **ionice** \\ 프로그램의 io 스케줄링 클래스 및 우선순위를 가져오거나 설정합니다. * **ipcmk** \\ 다양한 IPC 리소스를 생성합니다. * **ipcrm** \\ 주어진 프로세스 간 통신(IPC((Inter-Process Communication))) 리소스를 제거합니다. * **ipcs** \\ IPC 상태 정보 제공 * **irqtop** \\ 커널 인터럽트 카운터 정보를 [[https://man.archlinux.org/man/top.1|top(1)]] 스타일 보기로 표시합니다. * **isosize** \\ iso9660 파일 시스템의 크기를 확인합니다. * **kill** \\ 프로세스에 신호를 보냅니다. * **last** \\ 마지막으로 로그인(및 로그아웃)한 사용자를 표시하고 ''/var/log/wtmp'' 파일을 다시 검색하며 시스템 부팅, 종료 및 실행 수준 변경 사항도 표시합니다. * **lastb** \\ ''/var/log/btmp''에서 로그인한 실패한 로그인 시도를 표시합니다. * **ldattach** \\ 시리얼에 대한 규율을 첨부합니다. * **linux32** \\ setarch에 대한 심볼릭 링크 * **linux64** \\ setarch에 대한 심볼릭 링크 * **logger** \\ 주어진 메시지를 시스템 로그에 입력합니다. * **look** \\ 주어진 문자열로 시작하는 줄을 표시합니다. * **losetup** \\ 루프 장치를 설정하고 제어합니다. * **lsblk** \\ 모든 또는 선택한 블록 장치에 대한 정보를 트리 형식으로 나열합니다. * **lscpu** \\ CPU 아키텍처 정보를 인쇄합니다 * **lsfd** \\ 열린 파일에 대한 정보를 표시하고, ''lsof''를 대체합니다. * **lsipc** \\ 현재 시스템에서 사용 중인 IPC 시설에 대한 정보를 출력합니다. * **lsirq** \\ 커널 인터럽트 카운터 정보를 표시합니다. * **lslocks** \\ 로컬 시스템 잠금을 나열합니다 * **lslogins** \\ 사용자, 그룹 및 시스템 계정에 대한 정보를 나열합니다. * **lsmem** \\ 온라인 상태와 함께 사용 가능한 메모리 범위를 나열합니다. * **lsns** \\ 네임스페이스를 나열합니다 * **mcookie** \\ xauth에 대한 매직 쿠키(128비트 임의 16진수)를 생성합니다. * **mesg** \\ 다른 사용자가 현재 사용자의 터미널로 메시지를 보낼 수 있는지 여부를 제어합니다. * **mkfs** \\ 장치(일반적으로 하드 디스크 파티션)에 파일 시스템을 구축합니다. * **mkfs.bfs** \\ 산타크루즈 운영(SCO) bfs 파일 시스템을 생성합니다. * **mkfs.cramfs** \\ cramfs 파일 시스템을 만듭니다. * **mkfs.minix** \\ Minix 파일 시스템을 만듭니다. * **mkswap** \\ 스왑 영역으로 사용할 지정된 장치 또는 파일을 초기화합니다. * **more** \\ 한 번에 한 화면씩 텍스트를 페이징하는 필터 * **mount** \\ 지정된 장치의 파일 시스템을 파일 시스템 트리의 지정된 디렉토리에 연결합니다. * mountpoint \\ 디렉터리가 마운트 지점인지 확인합니다. * **namei** \\ 지정된 경로의 심볼릭 링크를 표시합니다. * **nsenter** \\ 다른 프로세스의 네임스페이스를 가진 프로그램을 실행합니다. * **partx** \\ 커널에 디스크 파티션의 존재와 번호에 대해 알려줍니다. * **pivot_root** \\ 주어진 파일 시스템을 현재 프로세스의 새 루트 파일 시스템으로 만듭니다. * **prlimit** \\ 프로세스의 리소스 제한을 가져오고 설정합니다. * **readprofile** \\ 커널 프로파일링 정보를 읽습니다 * **rename** \\ 주어진 문자열을 다른 문자열로 바꾸어 주어진 파일의 이름을 바꿉니다. * **renice** \\ 실행 중인 프로세스의 우선순위를 변경합니다. * **resizepart** \\ 리눅스 커널에 파티션 크기를 조정하도록 요청합니다. * **rev** \\ 주어진 파일의 줄을 뒤집습니다. * **rfkill** \\ 무선 장치를 활성화 및 비활성화하는 도구 * **rtcwake** \\ 지정된 시간까지 시스템 절전 상태로 전환하는 데 사용됩니다. * **script** \\ 터미널 세션의 타입스크립트를 만듭니다. * **scriptlive** \\ 타이밍 정보를 사용하여 세션 타입스크립트를 다시 실행합니다. * scriptreplay \\ 타이밍 정보를 사용하여 타입스크립트를 재생합니다. * **setarch** \\ 새 프로그램 환경에서 보고된 아키텍처를 변경하고 특성 플래그를 설정합니다. * **setsid** \\ 새 세션에서 주어진 프로그램을 실행합니다. * **setterm** \\ 터미널 속성을 설정합니다 * **sfdisk** \\ 디스크 파티션 테이블 조작기 * **sulogin** \\ 루트의 로그인을 허용합니다. 일반적으로 시스템이 단일 사용자 모드로 전환될 때 init에 의해 호출됩니다. * swaplabel \\ 스왑 영역의 UUID와 레이블을 변경합니다. * **swapoff** \\ 페이징 및 스왑을 위해 장치와 파일을 비활성화합니다. * **swapon** \\ 페이징 및 스왑을 위한 장치 및 파일을 활성화하고 현재 사용 중인 장치 및 파일을 나열합니다. * **switch_root** \\ 마운트 트리의 루트로 다른 파일 시스템으로 전환합니다. * **taskset** \\ 프로세스의 CPU 선호도를 검색하거나 설정합니다. * **uclampset** \\ 시스템 또는 프로세스의 사용률 클램핑 속성을 조작합니다. * **ul** \\ 밑줄을 사용 중인 터미널의 밑줄을 나타내는 이스케이프 시퀀스로 변환하는 필터입니다. * **umount** \\ 시스템의 파일 트리에서 파일 시스템 연결을 끊습니다. * **uname26** \\ setarch에 대한 심볼릭 링크 * **unshare** \\ 부모로부터 일부 네임스페이스를 공유하지 않은 프로그램을 실행합니다. * **utmpdump** \\ 주어진 로그인 파일의 내용을 읽기 편한 형식으로 표시합니다. * **uuidd** \\ UUID 라이브러리에서 안전하고 고유성이 보장된 방식으로 시간 기반 UUID를 생성하는 데 사용되는 데몬. * **uuidgen** \\ 새 UUID를 생성합니다. 각각의 새 UUID는 로컬 시스템과 다른 시스템에서 과거와 미래에 생성된 모든 UUID 중에서 매우 높은 확률로 고유할 가능성이 있는 난수입니다(2128개의 UUID 가능). * **uuidparse** \\ 고유 식별자를 파싱하는 유틸리티 * **wall** \\ 현재 로그인한 모든 사용자의 터미널에 파일 내용 또는 기본적으로 표준 입력을 표시합니다. * **wdctl** \\ 하드웨어 감시 상태를 표시합니다. * **whereis** \\ 주어진 명령에 대한 바이너리, 소스 및 매뉴얼 페이지 파일의 위치를 보고합니다. * **wipefs** \\ 장치에서 파일 시스템 서명을 지웁니다. * **x86_64** \\ setarch에 대한 심볼릭 링크 * **zramctl** \\ zram(압축 램 디스크) 장치를 설정하고 제어하는 프로그램 * libblkid \\ 장치 식별 및 토큰 추출을 위한 루틴을 포함합니다. * libfdisk \\ 파티션 테이블 조작을 위한 루틴이 포함되어 있습니다. * libmount \\ 블록 장치 마운트 및 마운트 해제를 위한 루틴이 포함되어 있습니다. * libsmartcols \\ 표 형식의 화면 출력을 보조하는 루틴을 포함합니다 * libuuid \\ 로컬 시스템 외부에서 접근할 수 있는 객체에 대한 고유 식별자를 생성하는 루틴이 포함되어 있습니다.