이 가이드를 사용하여 간단한 패키지를 만들었지 만 내부에서 스크립트를 실행할 수 없습니다.
일부 명령 mypack
이 포함 된 라는 폴더 /usr/bin/myscript.sh
( "Hello World"와 같은 메시지를 에코한다고 가정 해 보겠습니다) 와 다음 텍스트 DEBIAN
가 포함 된 control
파일이 있는 폴더가 있습니다.
Package: mypack
Version: 1.0-1
Maintainer: Alex
Architecture: all
Section: misc
Description: echo me
나는 그것을 사용하여 그것을 만들고 설치했다 dpkg-deb --build mypack
; dpkg -i mypack.deb
가이드가 말했듯이.
마지막으로 스크립트 스크립트를 실행하여 작동하는지 확인하려고 할 때 할 수 없었습니다. 나는 시도했다 :
myscript
(반환 myscript: command not found
)myscript.sh
(반환 bash: /usr/bin/myscript.sh: Permission denied
)sudo myscript.sh
(반환 sudo: myscript.sh: command not found
)mypack myscript
및 mypack myscript.sh
(둘 다 반환 mypack: command not found
)그런 다음 어떻게 실행하여 실제로 작동하는지 아니면 스크립트를 실행할 수없는 몇 가지 중요한 단계를 놓치고 있습니까?
스크립트가 실행 파일로 설정되지 않았습니다. 패키징으로 설치 되지 않은 스크립트와 마찬가지로 실행 가능한 비트가 설정되어 있는지 확인해야합니다.
두 가지 옵션이 있습니다.
패키지를 만들 때 확인 스크립트가 실행 비트가 설정되어 있는지 확인 하기 전에 작업 디렉토리에서이 프로그램을 실행하여 패키지를 작성 하기 전에 패키지를 구축 :
chmod + x /path/to/script.sh
또는...
postinst
패키지에 대한 스크립트를 사용하여 설치 후 실행 비트를 설정하십시오 . .postinst
다음과 유사한 명령을 스크립트에 추가합니다 .
chmod + x /usr/bin/myscript.sh
내 물건의 일부, 나는 두 가지 방법을 사용하십시오 단지 그것을 실행으로 일을 설정 확인합니다. 그것은 때때로 두통을 유발하지만 확인 하지 않는 것보다 확인하는 것이 좋습니다 . 적어도 제 생각에는.
스크립트에 관해서으로 실행 할 수없는 myscript
때문에 것을, myscript
그리고이 myscript.sh
있는 다른 개체 .
원하는 경우 .postinst
패키지 의 스크립트 에서 다음을 수행하십시오 .
ln -s /usr/bin/myscript.sh /usr/bin/myscript
... 실행 가능 비트 문제를 수정했다고 가정하면 시도한 두 버전, myscript.sh
그리고 myscript
.
그러나 이를 수행하는 적절한 방법은 대신 스크립트를myscript
셸 확장을 포함하지 않고그대로 패키지하는 것입니다. 그런 다음#!
사용할 통역사를 나타내는시작 줄 ()을 포함해야합니다. .sh
무엇이든 될 수있기 때문에. 그런 다음 패키지를 설정하여myscript
. muru가 말했듯이, postinst에서 링크를 만드는 것을 피해야하지만, 무엇을하고 싶은지는 당신에게 달려 있습니다. 목표를 달성하는 데는여러 가지 방법이 있지만 패키징에 대한 설명서에는 그다지 엄격한 지침이 없습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다