2016-05-27 2 views
3

Я пытаюсь построить .deb из пакета python. Для этого мне нужно настроить файл control. Контрольный файл содержит строку, в которой вы можете определить зависимости для пакета, например:

Depends: python-appindicator, python3-yaml (>=3.11), ${misc:Depends}, ${python3:Depends} 

определение зависимостей для python3-yaml легко понять, но что ${misc:Depends} и ${python3:Depends} стоять?

ответ

5

Это означает, что во время обработки процесса переменная ${python3:Depends} будет заменена унаследованными зависимостями py3 для этого пакета. dh_python3 поможет это сделать. Он пытается угадать, каковы зависимости пакета, который содержит такую ​​запись, ища файл requires.txt в каталоге сборки, например, в debian/python-foo/usr/lib/python3.4/dist-packages/foo-0.0.1.egg-info/requires.txt, а затем перевести его в зависимости от типа debian. Также ${misc:Depends} означает такие типы зависимостей, которые задействованы самим debhelper (некоторыми утилитами dh_ *).

+0

В моем пакете требуется зависимость, называемая 'PyYAML'. Это имя для него в 'requirements.txt' и' PyPi'. Эквивалент Debian для этого пакета называется 'python3-yaml'. Должен ли я указывать 'python3-yaml' в файле' control' или он будет включен автоматически, если у меня есть 'PyYAML' в' requirements.txt'? – Rotareti

+1

Нет необходимости явно указывать этот пакет, он будет автоматически переведен из 'requirements.txt' в зависимую от debian зависимостей и помещен вместо' $ {python3: Depends} ', если он там. За некоторыми исключениями существуют словарные файлы, которые помогают 'dh-python' с переводом на'/usr/share/dh-python/dist/'. Но для хорошей практики рекомендуется установить эти зависимости явно. – NULL