Linux From Scratch - Version 12.1-systemd
Chapter 8. Installing Basic System Software
이전	위로 / 처음으로	다음
Jinja2-3.1.3	D-Bus-1.14.10

8.75. Systemd-255

systemd 패키지에는 시스템의 시작, 실행 및 종료를 제어하는 프로그램이 포함되어 있습니다.

빌드 시간: 0.7 SBU

디스크 공간: 247 MB

8.75.1. systemd 설치

기본 udev 규칙에서 불필요한 두 그룹인 render와 sgx를 제거합니다.

이제 systemd-resolved의 DNSSEC 확인 보안 취약성과 인스턴스화된 systemd 장치에서 systemd-analyze verify을 실행하는 버그를 수정합니다.

systemd 컴파일을 준비합니다.

meson 옵션의 의미

–buildtype=release
최적화되지 않은 바이너리를 생성하는 기본 빌드 유형(“디버그”)을 재정의합니다.

-default-dnssec=no
실험적인 DNSSEC 지원을 해제합니다.

-Dfirstboot=false
시스템을 처음 시작시 시스템을 설정하는 systemd 서비스를 설치하지 않도록 합니다. 모든 작업이 수동으로 수행되므로 LFS에서는 유용하지 않습니다.

-Dinstall-tests=false
컴파일된 테스트의 설치를 방지합니다.

-Dldconfig=false
부팅 시 ldconfig를 실행하는 systemd 유닛의 설치를 방지합니다. 이는 LFS와 같은 소스 배포에는 유용하지 않으며 부팅 시간이 길어집니다. 부팅 시 ldconfig를 실행하려면 이 옵션을 제거합니다.

-Dsysusers=false
/etc/group 및 /etc/passwd 파일 설정을 담당하는 systemd 서비스가 설치되지 않도록 합니다. 두 파일은 모두 이전 장에서 생성되었습니다. 사용자 계정은 수동으로 생성되므로 이 데몬은 LFS 시스템에서는 유용하지 않습니다.

-Drpmmacrosdir=no
LFS가 RPM을 지원하지 않으므로 systemd와 함께 사용할 RPM 매크로 설치를 비활성화합니다.

-Dhomed=disabled 및 -Duserdb=false
LFS의 범위에 맞지 않는 종속성을 가진 두 개의 데몬을 제거합니다.

-Dman=disabled
추가 종속성을 피하기 위해 매뉴얼 페이지 생성을 비활성화 합니다. systemd에 미리 생성된 man 페이지를 tarball에서 설치합니다.

-Dmode=release
업스트림에서 실험적인 것으로 간주하는 일부 기능을 비활성화 합니다.

-Dpamconfdir=no
LFS에서 작동하지 않는 PAM 구성 파일을 설치하지 않도록 합니다.

-Ddev-kvm-mode=0660
기본 udev 규칙은 모든 사용자가 /dev/kvm에 액세스할 수 있도록 허용합니다. 편집자는 이를 위험하다고 생각합니다. 이 옵션은 이를 재정의합니다.

-Dnobody-group=nogroup
패키지에 GID 65534의 그룹 이름을 nogroup으로 지정합니다.

-Dsysupdate=disabled
systemd-sysupdate 도구를 설치하지 않습니다. 이 도구는 바이너리 배포판을 자동으로 업그레이드하기 위해 설계되었으므로 소스에서 빌드된 기본 Linux 시스템에는 쓸모가 없습니다. 또한 활성화되어 있지만 제대로 구성되지 않은 경우 부팅 시 오류를 보고합니다.

-Dukify=비활성화
systemd-ukify 스크립트를 설치를 비활성화 합니다. 이 스크립트를 실행하려면 LFS나 BLFS에서 제공하지 않는 파이썬 모듈이 필요합니다.

패키지를 컴파일합니다.

패키지를 설치합니다:

매뉴얼 페이지를 설치합니다:

systemd-journald에 필요한 /etc/machine-id 파일을 생성한다:

시스템에 대한 기본 설정을 합니다.

8.75.2. Systemd 패키지 구성

설치된 프로그램:
busctl, coredumpctl, halt(systemctl에 링크), hostnamectl, init, journalctl, 커널-설치, localectl, loginctl, machinectl, mount. ddi(systemd-dissect에 링크), networkctl, oomctl, portablectl, poweroff(systemctl에 링크), reboot(systemctl에 링크), resolvconf(resolvectl에 링크), resolvectl, runlevel(systemctl에 링크), shutdown(systemctl에 링크), systemctl, systemd-ac-power, systemd-analyze, systemd-ask-password, systemd-cat, systemd-cgls, systemd-cgtop, systemd-confext(systemd-sysext에 링크), systemd-creds, systemd-delta, systemd-detect-virt, systemd-dissect, systemd-escape, systemd-hwdb, systemd-id128, systemd-inhibit, systemd-machine-id-setup, systemd-mount, systemd-notify, systemd-nspawn, systemd-path, systemd-repart, systemd-resolve(resolvectl에 링크), systemd-run, systemd-socket-activate, systemd-stdio-bridge, systemd-sysext, systemd-tmpfiles, systemd-tty-ask-password-agent, systemd-umount (systemd-mount에 링크), telinit (systemctl에 링크), timedatectl 및 udevadm.

설치된 라이브러리:
libnss_myhostname.so.2, libnss_mymachines.so.2, libnss_resolve.so.2, libnss_systemd.so.2, libsystemd.so, libsystemd-shared-255.so(/usr/lib/systemd) 및 libudev.so

설치된 디렉터리:
/etc/binfmt.d, /etc/init.d, /etc/kernel, /etc/modules-load.d, /etc/sysctl.d, /etc/systemd, /etc/tmpfiles.d, /etc/udev, /etc/xdg/systemd, /usr/lib/systemd, /usr/lib/udev, /usr/include/systemd, /usr/lib/binfmt. d, /usr/lib/environment.d, /usr/lib/kernel, /usr/lib/modules-load.d, /usr/lib/sysctl.d, /usr/lib/systemd, /usr/lib/tmpfiles.d, /usr/share/doc/systemd-255, /usr/share/factory, /usr/share/systemd, /var/lib/systemd 그리고 /var/log/journal.

간략한 설명

busctl
D-Bus 버스를 인트로스펙트하고 모니터링하는 데 사용됩니다.

coredumpctl
systemd 저널에서 코어 덤프를 검색하는 데 사용됩니다.

halt
실행 레벨이 0인 경우를 제외하고, 커널에 시스템 중단을 지시하는 -h 옵션으로 일반적으로 셧다운을 호출하며, 시스템이 중단되고 있음을 /var/log/wtmp 파일에 기록합니다.

hostnamectl
시스템 호스트명 및 관련 설정을 쿼리하고 변경하는 데 사용됩니다.

init
커널이 하드웨어를 초기화한 후 처음 시작하는 프로세스로, 부팅 프로세스를 인계받아 구성 파일에 지정된 프로세스를 시작합니다; 이 경우 systemd를 시작합니다.

journalctl
systemd 저널의 내용을 쿼리하는 데 사용됩니다.

kernel-install
kernel과 initramfs 이미지를 /boot에 추가하고 제거하는 데 사용됩니다; LFS에서는 이 작업을 수동으로 수행합니다.

localectl
시스템 로케일 및 키보드 레이아웃 설정을 쿼리하고 변경하는 데 사용됩니다.

loginctl
시스템d 로그인 관리자의 상태를 조사하고 제어하는 데 사용됩니다.

machinectl
systemd 가상 머신 및 컨테이너 등록 관리자의 상태를 조회하고 제어하는 데 사용된다.

networkctl
systemd-networkd로 구성된 네트워크 링크의 상태를 조회하고 구성하는 데 사용된다.

oomctl
systemd 메모리 부족 데몬을 제어한다.

portablectl
로컬 시스템에서 휴대용 서비스를 연결하거나 분리하는 데 사용됩니다.

poweroff
커널이 시스템을 중지하고 컴퓨터를 끄도록 지시합니다 (halt 참조).

reboot
커널에 시스템을 재부팅하도록 지시합니다 (halt 참조).

resolvconf
DNS 서버 및 도메인 구성을 systemd-resolved로 등록합니다.

resolvectl
네트워크 이름 확인 관리자에게 제어 명령을 보내거나 도메인 이름, IPv4 및 IPv6 주소, DNS 레코드 및 서비스를 확인합니다.

runlevel
run/utmp의 마지막 실행 수준 레코드에 기록된 대로 이전 실행 수준과 현재 실행 수준을 출력합니다.

shutdown
시스템을 안전하게 종료하여 모든 프로세스에 신호를 보내고 로그인한 모든 사용자에게 알립니다.

systemctl
systemd 시스템 및 서비스 관리자의 상태를 점검하고 제어하는 데 사용됩니다.

systemd-ac-power
시스템이 외부 전원에 연결되어 있는지 여부를 보고합니다.

systemd-analyze
시스템 시작 성능을 분석하고 문제가 있는 systemd 장치를 식별하는 데 사용됩니다.

systemd-ask-password
Linux 명령줄에 지정된 메시지를 사용하여 사용자로부터 시스템 암호 또는 암호 구문을 쿼리하는 데 사용됩니다.

systemd-cat
프로세스의 STDOUT 및 STDERR 출력을 systemd 저널과 연결하는 데 사용됩니다.

systemd-cgls
선택한 리눅스 제어 그룹 계층 구조의 내용을 트리로 재귀적으로 표시합니다.

systemd-cgtop
로컬 리눅스 제어 그룹 계층 구조의 최상위 제어 그룹을 CPU, 메모리 및 디스크 I/O 로드 순서대로 표시합니다.

systemd-creds
자격 증명을 표시하고 처리합니다

systemd-delta
/etc에서 /usr의 기본값을 재정의하는 구성 파일을 식별하고 비교하는 데 사용됩니다.

systemd-detect-virt
시스템이 가상 환경에서 실행되고 있는지 여부를 감지하고 그에 따라 udev를 조정합니다.

systemd-dissect
OS 디스크 이미지를 검사하는 데 사용됩니다.

systemd-escape
systemd 유닛 이름에 포함할 문자열을 이스케이프하는 데 사용됩니다.

systemd-hwdb
하드웨어 데이터베이스(hwdb)를 관리하는 데 사용됩니다.

systemd-id128
id128(UUID) 문자열을 생성하고 출력합니다.

systemd-inhibit
종료, 절전 또는 유휴 억제 잠금이 적용된 프로그램을 실행하는 데 사용되며, 프로세스가 완료될 때까지 시스템 종료와 같은 동작을 방지합니다.

systemd-machine-id-setup
시스템 설치 도구에서 설치 시 /etc/machine-id에 저장된 시스템 ID를 임의로 생성된 ID로 초기화하는 데 사용됩니다.

systemd-mount
디스크를 일시적으로 마운트하거나 자동 마운트하는 데 사용됩니다.

systemd-notify
데몬 스크립트가 초기화 시스템에 상태 변경 사항을 알리기 위해 사용합니다.

systemd-nspawn
경량 네임스페이스 컨테이너에서 명령 또는 전체 OS를 실행하는 데 사용됩니다.

systemd-path
시스템 및 사용자 경로를 쿼리하는 데 사용됩니다.

systemd-repart
systemd가 OS 이미지(예: 컨테이너)와 함께 사용될 때 파티션 테이블을 성장시키고 파티션을 추가하는 데 사용됩니다.

systemd-resolve
도메인 이름, IPV4 및 IPv6 주소, DNS 리소스 레코드 및 서비스를 확인하는 데 사용됩니다.

systemd-run
임시 .service 또는 .scope 단위를 생성 및 시작하고 그 안에서 지정된 명령을 실행하는 데 사용되며, systemd 단위의 유효성을 검사하는 데 유용합니다.

systemd-socket-activate
소켓 장치에서 수신 대기하고 소켓에 성공적으로 연결되면 프로세스를 시작하는 데 사용됩니다.

systemd-sysext
시스템 확장 이미지를 활성화합니다

systemd-tmpfiles
tmpfiles.d 디렉터리에 지정된 구성 파일 형식과 위치에 따라 휘발성 및 임시 파일과 디렉터리를 생성, 삭제 및 정리합니다.

systemd-umount
마운트 지점을 마운트 해제합니다.

systemd-tty-ask-password-agent
보류 중인 systemd 암호 요청을 나열 또는 처리하는 데 사용됩니다.

telinit
init에 변경할 실행 수준을 알려줍니다.

timedatectl
시스템 시계와 그 설정을 쿼리하고 변경하는 데 사용됩니다.

udevadm
udevd 데몬을 제어하고, udev 하드웨어 데이터베이스에서 정보를 제공하고, 이벤트를 모니터링하고, 이벤트가 완료될 때까지 기다리며, udev 구성을 테스트하고, 특정 장치에 대한 이벤트를 트리거하는 일반적인 udev 관리 도구입니다.

libsystemd
메인 시스템드 유틸리티 라이브러리입니다.

libudev
Udev 디바이스 정보에 액세스하는 라이브러리입니다.