TL; DR;
누군가 내 deb
패키지 sudo dpkg -i example.deb
를를 사용 postinst
하여 설치하는 경우 종속성이 실패한 설치의 경우 사용자 지정 작업 (와 유사한 셸 명령)을 추가 할 수있는 방법이 있습니까?
deb
패키지에 UI 종속성이 있지만 대상 머신이 Ubuntu 서버 라고 가정 합니다.
달리는 sudo dpkg -i example.deb
것은
(Reading database ... 59708 files and directories currently installed.)
Preparing to unpack ./example.deb ...
Unpacking example (13) over (11) ...
dpkg: dependency problems prevent configuration of example:
example depends on libappindicator1; however:
Package libappindicator1 is not installed.
dpkg: error processing package example (--install):
dependency problems - leaving unconfigured
Processing triggers for mime-support (3.64ubuntu1) ...
Errors were encountered while processing:
example
결과는-압축 해제 된 패키지 (에서 내용을 찾을 수 있음 /opt
)이고 종료 코드는 1
( echo $?
)이지만 postinst
스크립트가 실행되지 않습니다. 소프트웨어는 UI 없이도 작동 할 수 있으므로 큰 문제가 아닙니다 (UI가있는 설치 프로그램과없는 설치 프로그램을 만들 때까지).
문제는 postinst
스크립트 에 몇 가지 중요한 단계가 있지만 전혀 실행되지 않는다는 것입니다.
어떤 종류의 롤백 절차 나 그러한 오류를 처리하는 방법이 필요할 수 있지만, 사소하게 들리지만이를 수행 할 방법을 찾을 수 없었습니다.
다른 방법은 필요한 단계를 실행하는 것입니다 후 풀고 전에 의존하여 해상도,하지만 난뿐만 아니라 이런 일을 찾지 못했습니다.
분명히 여기서 근본적인 것을 놓치고 있습니다. 어떤 아이디어?
편집 : 더 나아가, 누락 된 패키지가 나중에 존재하면 postinst
실제로 실행 되지 않았기 때문에 설치도 불완전하거나 손상 되었습니다. 이것은 매우 간단하게 들리므로 이것에 대한 쉬운 해결책이 있다고 생각합니다.
귀하의 postinst
패키지의 의존성이 존재하고 구성되지 않은 경우 의지가 실행되지 않습니다. 당신은 할 수 사물을 설정하여 속임수 preinst
(패키지 풀고 전에 그런 일이 있지만),하지만 난 더 나은 접근 방식은 "권장"에 GUI 종속성을 이동하는 것입니다 생각합니다. 패키지는 UI 종속성없이 작동 할 수 있으므로 이에 의존해서는 안되며 권장해야합니다. 이렇게하면 패키지가 없을 때 구성 할 수 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다