Я не пошел бы так далеко, как установка программного обеспечения на некоторый компьютер / сервер, потому что это могло бы сломать другое программное обеспечение, работающее в этой системе. (Хотя вы не можете пропустить установку пакетов с pip
). Вместо этого я бы создал пакет deb и установил зависимости, на которых должно быть установлено программное обеспечение, чтобы помочь пользователю выполнить установку.
1. Создать структуру каталогов deb
В каталоге deb
содержатся последние скрипты / двоичные файлы для пакета. source
имеет ваш код Python.
$ cd $HOME/path/to/some/directory
$ mkdir -p ./deb/DEBIAN ./source
$ touch ./Makefile ./source/Makefile ./deb/DEBIAN/{control,preinst} ./source/hello-world.py
$ chmod +x ./deb/DEBIAN/preinst
2. Добавить файлы
Ниже я добавил содержание каждого файла. Вы должны быть в состоянии реализовать его в соответствии с вашими потребностями.
. / Makefile : Этот файл отвечает за генерацию исходного кода и deb.
PACKAGE := hello-world
DEB_DIR := deb
DEB_FILE := $(PACKAGE).deb
SOURCE_DIR := source
SOURCE_IN := $(SOURCE_DIR)/$(PACKAGE).py
SOURCE_OUT := $(DEB_DIR)/usr/bin/
.PHONY: all clean
all:
@make -C $(SOURCE_DIR) CROSS_COMPILE=$(CROSS_COMPILE)
@mkdir -p $(SOURCE_OUT)
@cp -r $(SOURCE_IN) $(SOURCE_OUT)
@chmod -R a-s $(DEB_DIR)
@dpkg-deb --build $(DEB_DIR) $(DEB_FILE)
clean:
@rm -rf $(DEB_FILE) $(SOURCE_OUT)
@make -C $(SOURCE_DIR) clean
. / Deb / DEBIAN / control : управляющий файл для менеджера пакетов Debian.
Package: hello-world
Version: 1
Section: misc
Priority: optional
Architecture: all
Depends: libc6 (>= 2.24), python (>=2.7.13)
Maintainer: Your name <your-name@domain.org>
Description: This is a deb package to install an application
. / Deb / DEBIAN / preinst : файл, в который можно устанавливать пакеты python. Он запускается до установки hello-world.py
. Опять же, убедитесь, что вы не просто (пере) устанавливаете / обновляете библиотеку. Это может вызвать проблемы несовместимости в другом программном обеспечении.
#! /bin/bash
echo "pip install something"
. / Source / Makefile : файл, который я использовал для проверки этой настройки.
MYFILE=hello-world.py
all:
@echo "#!/usr/bin/python\n\
print('Hello world!')" > $(MYFILE)
@chmod +x $(MYFILE)
clean:
@rm $(MYFILE)
3. Установка и удаление
Установка очень проста, просто используйте dpkg
.
dpkg -i hello-world.deb # for installation
dpkg -r hello-world # for removal
Приятной особенностью является то, что вам не нужно беспокоиться о версии своего программного обеспечения, поскольку это сделано в файле control
. У Debian есть неплохое руководство по , если вы хотите больше читать.