2017-02-03 1 views
1

Мне нужно преобразовать пакеты RPM в пакет DEB, чтобы установить его на Ubuntu. Поскольку у меня нет опыта создания пакетов DEB, googling предлагает «bdist_rpm» из пакета stdebКомпиляция кода C с помощью python setuptools 'bdist_deb'

Код в основном python, файлы конфигурации и т. Д. Но есть один код C, который нужно построить. RPM устанавливает двоичный файл в/USR/бен

код в setup.py для создания двоичного кода является

if sys.argv and len(sys.argv) > 1 and sys.argv[1].strip().startswith('bdist'): 
try: 
    compiler = UnixCCompiler(verbose=1) 
    compiler.compile(['cutility/chown_sudo.c']) 
    compiler.link_executable((['cutility/chown_sudo.o']), 'bin/sudoown') 
except CompileError as compileError: 
    print "Failed to compile the binary file." 
    raise 

bdist_rpm понимает этот код и создает C. Но bdist_deb игнорирует :(

Поиск по сети, утилита debuild предлагает создать некоторый Makefile для этого и целого ряда других сложных вещей.

Это сложно? Некоторые поиски также предлагают использовать вместо этого «чужой» инструмент?

До сих пор моя мысль, используйте следующую команду

python setup.py --command-packages=stdeb.command debianize 

Затем установите DEBiAN каталог postint, контроль и т.д. Но я не знаю, как построить код C

ответ

0

I получается, что проверка «bdist», которую я использовал с «bdist_rpm», вызывала проблему при использовании опции «bdist_deb». Сценарий вызывается с аргументом «build» при использовании опции «bdist_deb». После того, как я добавил OR для startswith ('build'), все прошло

Смежные вопросы