apt-get은 패키지 설치 후 bash 스크립트를 종료합니다.

apt-get은 패키지 설치 후 bash 스크립트를 종료합니다.

나는 다음의 답변을 읽었습니다.이 게시물하지만 그것은 내 문제에는 효과가 없는 것 같습니다.

wget에서 stdin을 통해 bash 스크립트를 실행하고 있습니다.

wget -O - http://serverip/subfolder/script | sudo bash

을 사용해 보았지만 apt-get -y --force-yes install <packages..> || true나열된 것 중 하나가 apt-get에 의해 설치된 경우 여전히 스크립트가 종료됩니다.

나열된 패키지가 모두 이미 설치되어 있으면 스크립트가 종료되지 않습니다.

내가 가지고 있고 패키지를 설치하는 경우에도 동일한 일이 발생합니다 apt-get upgrade. 스크립트가 종료됩니다.

작동하는 것 같은 또 다른 스크립트 세트가 있습니다. 해당 시나리오에서 설치 스크립트는 스크립트를 다운로드하고 실행한 bash <scriptname>다음 스크립트를 삭제하는 스텁일 뿐입니다. 스크립트 자체는 sudoing을 통해 권한을 높입니다. apt-get여기서는 예상대로 작동합니다.

스크립트 종료를 방지하는 방법에 대한 통찰력을 주시면 apt-get감사하겠습니다.

답변1

사람들이 다음 작업을 중단했으면 합니다 wget | bash. 그것은 단지 어리석은 일이며 여기에서와 같이 의도하지 않은 효과를 가지고 있습니다. bash가 있으므로 해당 기능을 활용하십시오. 특히 프로세스 대체는 다음과 같습니다.

bash <(wget -O - http://serverip/subfolder/script)

답변2

apt-get아마도 표준 입력을 탐욕스럽게 읽는 것을 중단해야 할 것입니다 . /dev/null읽기에 eof를 반환하는 파일인 stdin을 로 리디렉션하여 이를 수행합니다 . 예:

apt-get -y --force-yes install ... </dev/null

관련 정보