preinst 스크립트 내에서 다른 dpkg 또는 apt- * 명령을 호출 할 수 있습니까?


9

Ubuntu 12.04 장치에 배포 될 사용자 지정 (사내) .deb 파일의 일부로 여러 PPA 리포지토리를 추가하고 apt-get update를 실행 한 다음 해당 PPA에서 패키지를 설치해야합니다.

내 .deb 파일의 .preinst 또는 .postinst 스크립트 내에서이 작업을 수행 할 수 있습니까?

나는 가정 나의 뎁 파일 (설치된 경우 sudo dpkg -i testing.deb) 일부 잠금 또는 메커니즘과 같은 특정 명령을 호출에서 저를 방지 할 가능성이 존재 add-apt-repository, apt-get update등을 apt-get install.

이것이 올바른 가정입니까?


답변:


7

당신이 올바른지. 관리자 스크립트는 패키지를 설치할 때 변경되는 것 외에 apt 또는 dpkg 상태를 변경하지 않아야합니다.

/etc/apt/sources.list.d그러나에 파일을 설치하는 것은 좋습니다. "APT 저장소 X를 시스템에 추가하려면이 패키지를 설치하십시오"와 같은 역할을 수행하는 대부분의 패키지는이를 호출하는 대신 간단히 수행합니다 add-apt-repository. 또한 리포지토리에 서명하는 데 사용 된 GPG 공개 키를에 삭제하는 것이 일반적 /etc/apt/trusted.gpg.d입니다.

사용자가 소프트웨어에 대한 추가 설치 단계를 간단하게 수행하려면 작업을 수행하는 스크립트를 제공하고 사용자에게 스크립트를 수동으로 실행하도록 지시하면됩니다.

그러나 정말로 정말로 자동으로 전화를 걸고 싶 apt-get update거나 apt-get install데비안이나 우분투에서 패키지를 완전히 받아 들일 수 없다는 것을 신경 쓰지 않고 사용자는 패키지가 그런 식으로 행동하면 괜찮을 것입니다. 뭔가 /etc/cron.d아무도가 개최되지 않은 경우는 기존 APT 또는 dpkg를 자물쇠하는 검사, 그리고 다시 수행 할되지 않은 단계에 대한 추가 설치 단계 및 주선을 수행합니다. 나는 그 접근법을 권장하지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.