Permissions

執行 fpm 創建的 .deb 包

  • February 14, 2022

我用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

並再次建構你的包。

引用自:https://unix.stackexchange.com/questions/690321