재현 단계:
질문
cd /usr/portage && grep -R "systemd_dounit" *
여러 ebuild를 열고 읽어보세요.
거의 모든 ebuild가 사용합니다.systemd_dounit확인하지 마세요체계먼저 USE 플래그를 사용하십시오.
로고는 다음과 같이 설명됩니다.
https://www.gentoo.org/support/use-flags/
systemd.eclass에 대한 설명은 다음과 같습니다.
https://devmanual.gentoo.org/eclass-reference/systemd.eclass/index.html
아니요, 기능 코드도 확인되지 않습니다.
# @FUNCTION: systemd_dounit
# @USAGE: <unit>...
# @DESCRIPTION:
# Install systemd unit(s). Uses doins, thus it is fatal in EAPI 4
# and non-fatal in earlier EAPIs.
systemd_dounit() {
debug-print-function ${FUNCNAME} "${@}"
(
insinto "$(_systemd_get_unitdir)"
doins "${@}"
)
}
답변1
젠투 개발자 커뮤니티에서는 systemd 종속성이 도입되지 않는 한 이러한 파일을 무조건 설치하는 데 문제가 없다고 믿기 때문입니다. INSTALL_MASK=/usr/lib/systemd
이를 방지하기 위해 in을 사용할 수 있습니다 make.conf
(참고자료 참조 man 5 make.conf
).
답변2
IUSE는 실제로 ebuild에서 USE 플래그를 참조하는 경우에만 필요합니다.
내가 확인한 몇몇 ebuild에서는 systemd USE 플래그를 사용하지 않고 단지 /usr/lib/systemd/system/에 systemd 서비스 정의를 맹목적으로 설치했습니다. 마치 openrc USE 플래그를 확인하지 않고 OpenRC init 스크립트를 맹목적으로 설치한 것과 같습니다. .
systemd(및 openrc) USE 플래그는 서비스 또는 init 스크립트 설치 여부가 아닌 init 시스템이 중요한 차이를 만드는 ebuild에서 사용됩니다.