Как добавить разрешения для файлов, установленных dpkg-buildpackage или debuild

Я собираю пакет из собственного источника, используя dh_make и dpkg-buildpackage. Файл установки в / debian указывает места назначения для файлов проекта. Чтобы заставить установленную программу работать, они должны быть исполняемыми / иметь права на выполнение с помощью chmod. В частности, речь идет о скрипте Python и файле .desktop.

Как установить эти разрешения в настройке? Только копируя их по назначению, это не делается. Было бы хорошо, если бы я мог запустить команду в конце установки или что-то в этом роде, но не знаю, как это включить.

2
задан 16.05.2020, 08:31

2 ответа

Файл .desktop не требует разрешений на выполнение, ваш скрипт .py делает это.

braiam@bt:~$ ls -l /usr/share/app-install/desktop/deluge.desktop 
-rw-r--r--. 1 root root 1276 Aug  6  2012 /usr/share/app-install/desktop/deluge.desktop
braiam@bt:~$ ls -l /usr/bin/deluge
-rwxr-xr-x 1 root root 289 Jan 27  2013 /usr/bin/deluge

Вы должны перед упаковкой установить исполняемый бит в скрипте python, чтобы dpkg позаботился обо всем остальном.

Файл .desktop является файлом конфигурации, читаемым xdg, и имеет собственные переменные, настроенные для выполнения необходимого двоичного файла:

cat /usr/share/app-install/desktop/deluge.desktop
[...]
GenericName=BitTorrent Client
X-GNOME-FullName=Deluge BitTorrent Client
Comment=Download and share files over BitTorrent
Exec=deluge-gtk %U
Icon=deluge
Terminal=false
Type=Application
Categories=Network;FileTransfer;P2P;GTK
StartupNotify=true
MimeType=application/x-bittorrent;x-scheme-handler/magnet;

Как вы видите, в нем есть переменная Exec, которая заботится выполнения при доступе к файлу.

2
ответ дан 16.05.2020, 08:32
  • 1
    Это было тем же самым, которое я прокомментировал прежде к другому вопросу тот же пользователь – TrinitronX 16.05.2020, 08:33
  • 2
    mmm... interestion, тогда что метод должен включать это файлы? – John Meyer 16.05.2020, 08:33
  • 3
    Мой пакет DEB копирует исполняемый файл .desktop файлы как исполняемый файл на установке - я полагаю, что полномочия должны все быть установлены правильно в источнике избежать проблем, но я не знаю, как setup.py обрабатывает это. – RubyFanatic 16.05.2020, 08:34
  • 4
    LOL - тогда это должна быть истина:) – mikerobi 16.05.2020, 08:34
  • 5
    Файлы .desktop без x разрешения попросят быть " untrusted". – Aristotle Pagaltzis 16.05.2020, 08:34

Вы можете создать сценарий после установки:

gedit debian/packagename.postinst

Это обычный сценарий, поэтому подойдут следующие инструкции:

#!/bin/sh
set -e
chmod 755 /path/to/pythonscript.py
exit 0

В качестве альтернативы, вы можете исключить файл от изменения его разрешений dh_fixperms. Это можно сделать в debian/rules:

%:
    dh  $@ --with python2

override_dh_fixperms:
    dh_fixperms --exclude path/to/pythonscript.py

Первый вариант предпочтительнее, потому что dh_fixperms делает другие полезные вещи, такие как изменение владельца файла, а исключение файла мешает dh_fixperms делать что-либо полезно. Также обратите внимание, что в первом варианте есть предшествующий слеш / path / to / pythonscript.py, так как это абсолютный путь, тогда как второй параметр относится к подкаталогу debian.

РЕДАКТИРОВАТЬ: @AlexisWilke упомянул лучшую альтернативу для варианта 2, а именно:

%:
    dh  $@ --with python2

override_dh_fixperms:
    dh_fixperms
    chmod 755 path/to/pythonscript.py

Это позволяет dh_fixperms применить свое волшебство, сопровождаемое незначительным необходимым исправлением.

4
ответ дан 16.05.2020, 08:32
  • 1
    Да, я думаю, что Вы - правильный, измененный ответ на иск. – anteatersa 16.05.2020, 08:33
  • 2
    Couldn' t мы делаем dh_fixperms первый, chmod a+x path/to/pythonscript.py? —, потому что тот путь dh_fixperms делает все правильно согласно debian и затем Вы чините еще несколько вещей Ваш путь. Корректный? – paxdiablo 16.05.2020, 08:33

Теги

Похожие вопросы