apt-get install에서 설치 스크립트는 무엇을합니까?


14

보인다 apt-get install데비안 패키지를 다운로드하기위한 설치 스크립트를 실행하려고합니다 :

  • 적절한 디렉토리를 만듭니다
  • 적절한 계정 만들기
  • 이진 파일 복사
  • 데이터 파일 복사
  • Conf 파일 복사
  • init.d 스크립트 복사
  • 서비스 시작
  • 기타

나는 그것에 정말로 관심이 있고 단계별로 무슨 일이 일어나고 있는지 알고 싶다. 볼 방법이 있습니까? "드라 이런 (dry run)"모드의 프린트 쉘 명령과 같은가?

답변:


25

간단히 말해서 : apt-get install시스템이 새로 설치된 소프트웨어 응용 프로그램을 성공적으로 실행할 수 있도록 필요한 모든 작업을 수행합니다.

더 긴 버전 :

예비 :

로부터 :

설치를 위해 지정된 패키지에 필요한 모든 패키지도 검색 및 설치됩니다.

이러한 패키지는 네트워크 (인터넷)의 저장소에 저장됩니다. 따라서 apt-get필요한 모든 패키지를 임시 디렉토리 ( /var/cache/apt/archives/) 로 다운로드하십시오 . 웹 또는 ftp 서버에서 다운로드됩니다. 그것들은 소위 sources.list; 패키지 관리자 apt의 리포지토리 목록 그때부터는 하나씩 절차 적으로 설치됩니다.

가장 먼저 설치되는 것은 더 이상의 종속성이없는 것입니다. 제대로 작동하기 위해 다른 패키지를 설치할 필요가 없습니다. 이를 통해 이전에 종속성이 있었던 다른 패키지는 더 이상 종속성이 없습니다. 지정된 패키지가 설치 될 때까지 시스템은 계속 해당 프로세스를 계속 수행합니다.

각 패키지는 설치 절차를 거칩니다.

패키지 설치 절차 :

데비안 기반 Linux 배포판 (예 : Ubuntu 또는 Mint)에서 해당 패키지는 다음과 같은 지정된 표준화 된 형식으로되어 있습니다. deb-> Debian binary package format .

이러한 패키지에는 시스템에 설치 될 파일이 포함되어 있습니다. 또한 제어 파일이 들어 있습니다 . 이 파일에는 패키징 시스템이 특정 상황에서 실행해야하는 스크립트가 포함되어 있습니다. 소위 관리자 스크립트 . 해당 스크립트는 다음과 같이 나뉩니다.

  • preinst: 파일을 시스템 파일 계층 구조로 설치하기 전에
  • postinst: 설치 후
  • prerm: 제거하기 전에
  • postrm: 제거 후

이러한 스크립트는 특정 사용자가 작성되거나 다시 시작해야하는 일부 서비스 또는 패키지가 작동하는 데 필요한 기타 예비 장소입니다.

이러한 스크립트 외에도 패키지 시스템에는 특정 이벤트를위한 트리거 가 있습니다. 예를 들어, 새로운 커널 버전이나 ldconfig 또는 man-db를 설치할 때 initrds 재생성. 이들은 하나 이상의 패키지에 의해 활성화되며 전체 설치 프로세스가 끝날 때 실행됩니다.

새 패키지 설치 절차를 보여주는 흥미로운 그림이 있습니다.

설치

더 많은 제어 파일이 있으며 가장 중요한 것은 다음과 같습니다.

관심이 있으시면 수동으로 deb 패키지의 압축을 풀고 (다운로드 후) 내부 내용을 볼 수 있습니다.

# to only download the package (no installation)
apt-get download package
# to unpack the deb file
ar x package.deb

이제 파일을 data.tar.gz포함하는 파일과 control.tar.gz네 개의 관리자 스크립트 및 위에서 언급 한 제어 파일을 포함하는 파일이 표시됩니다.


요즘에는 공식 deb 패키지 관리자 (apt-get이 사용되는) 이기 때문에 dpkg-deb -x package.deb대신 대신 사용 하는 것이 좋습니다 . ar x package.debdpkg
Fanatique
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.