"apt-get install"이 무엇을 하는지 알아보세요

"apt-get install"이 무엇을 하는지 알아보세요

소프트웨어를 설치하기 위해 패키지가 실행한 명령이 무엇인지 어떻게 알 수 있습니까 apt-get install <package>?

예를 들어, 사용자를 생성하는 패키지를 설치하는 경우 해당 패키지가 해당 사용자를 생성하는 방법을 어떻게 알 수 있습니까?

답변1

설치 후 스크립트를 보면 실제로는 dpkg에 의해 실행됩니다. 에서 이러한 내용을 찾을 수 있습니다 /var/lib/dpkg/info. 이러한 스크립트에는 접미사가 붙은 관련 바이너리 패키지의 이름이 포함되어 있습니다 .postinst.

접미사가 붙은 사전 설치 스크립트도 있지만 .preinst패키지가 postinst스크립트에 새 사용자를 생성할 가능성이 더 높다고 생각합니다.

구체적인 예가 있나요?

예를 들어 사용자를 생성하는 postgresql-common이 있습니다 postgres. 다음은 문서에서 발췌한 내용입니다 /var/lib/dpkg/info/postgresql-common.postinst.

   # Make sure the administrative user exists
    if ! getent passwd postgres > /dev/null; then
        adduser --system --quiet --home /var/lib/postgresql --no-create-home \
            --shell /bin/bash --group --gecos "PostgreSQL administrator" postgres
    fi

답변2

그것이 하는 일은 패키지에서 실행되는 것뿐입니다 apt-get install.dpkg -i

패키지가 설치되었을 때 어떤 일을 하는지 이해하려면 패키지를 풀어야 합니다. /var/cache/apt/archives/패키지가 아직 있는지 확인하세요 .

패키지 내에는 데이터 아카이브( data.tar.gz)와 제어 아카이브( control.tar.gz)가 있습니다. 컨트롤 아카이브에는 설치 후 실행되는 스크립트( postint)와 패키지 제거 후 실행되는 스크립트( postrm)가 포함되어 있습니다. 편집기에서 이 스크립트를 열고 실제 설치 프로세스를 확인하세요.

짐 등에서 꺼내다:

ar x package.deb

제어 아카이브의 압축을 푼다(패키지 압축을 푼 후):

tar xfz control.tar.gz

관련 정보