Permissions
執行 fpm 創建的 .deb 包
我用fpm
.deb
創建了一個包。這個包非常簡單,因為它只是在這個文件上執行一個docker-compose 。docker-compose.yml
該包由3個文件組成:
. ├── diagnosticator ├── diagnosticator.1 └── docker-compose.yml
上的權限
diagnosticator
如下:-rw-rw-r-- 1 enrico enrico 554 feb 12 21:23 diagnosticator
這是我的
diagnosticator
腳本,只需要執行docker-compose.yml
:#!/usr/bin/env bash # # == diagnosticator 0.1.0 == # DOCKER_COMPOSE_FILE=/usr/lib/diagnosticator/docker-compose.yml if [ -s $DOCKER_COMPOSE_FILE ]; then docker-compose pull && docker-compose up else echo ' !!! ERROR !!!' echo ' ---> missing docker-compose.yml <--- ' fi exit 0
這裡是
fpm
用於建構它的命令:fpm \ -s dir -t deb \ --deb-use-file-permissions \ -p diagnosticator-0.1.0-1-any.deb \ --name diagnosticator \ --license agpl3 \ --version 0.1.0 \ --architecture all \ --depends bash \ --description "Diagnosticator local app" \ --url "https://diagnosticator.com" \ --maintainer "Enrico Cocchi" \ diagnosticator=/usr/bin/diagnosticator diagnosticator.1=/usr/share/man/man1/diagnosticator.1 docker-compose.yml=/usr/lib/diagnosticator/docker-compose.yml
當我
sudo dpkg -i diagnosticator-0.1.0-1-any.deb
一切正常並且文件放置在應有的位置時,但是如果我嘗試執行它(有和沒有sudo
):$ diagnosticator bash: /usr/bin/diagnosticator: Permission denied $ sudo diagnosticator sudo: diagnosticator: command not found
我希望使用者能夠在沒有
sudo
. 我試圖用Google搜尋並在這裡搜尋任何解決方案,但我找不到任何解決方案。有人知道我在這裡做錯了什麼嗎?
您的
diagnosticator
腳本必須是可執行的:執行chmod 755 diagnosticator
並再次建構你的包。