Как я могу сделать программу (используя SDL), основанную на работе Ubuntu на других системах?

Это место, где я всегда находил недостающую документацию. Я в значительной степени узнал, как это работает, глядя на то, как это делается в других пакетах. Как и в большинстве случаев в упаковке Debian, есть несколько способов сделать это. Я считаю, что самый простой способ - использовать файлы debian/package.install. Вот пример пакета, над которым я работал, воображение (ветвь bzr).

Сначала нам нужно создать пакет в воображении (ветвь bzr) . Сейчас есть три строфы. Один для исходного пакета и по одному для каждого двоичного пакета. Обратите внимание, что пакет foo-data должен быть Architecture: all. Также обратите внимание, что воображение зависит от imagination-common (= ${source:Version}).

Затем мы создаем файл debian/imagination.install. Это содержит конкретные файлы или пути, которые мы хотим закончить в пакете воображения. Для этого пакета мы хотим, чтобы все зависимые от архитектуры файлы. Файл рабочего стола включен, так как ему нужно сказать с двоичным кодом, который он вызывает в своей строке Exec:.

usr/bin/
usr/lib/
/usr/share/applications/imagination.desktop

Нам нужно создать файл debian/imagination-common.install. Это будет содержать все независимые от архитектуры файлы, изображения, переводы, документы и т. Д.

/usr/share/doc/
/usr/share/icons/
/usr/share/imagination/
/usr/share/locale/

man dh_install описывает, что на самом деле происходит здесь:

, возможно, у вас есть большой пакет, который создает несколько бинарных пакетов. Вы можете использовать Upstream Makefile, чтобы установить все это в debian / tmp, а затем использовать dh_install для копирования каталогов и файлов оттуда в соответствующие каталоги сборки пакетов.

Что означает «правильные каталоги сборки пакетов», так это то, что к концу процесса сборки все, что будет в полученном foo.deb, будет найдено в src/debian/foo. Файлы, которые попадут в foo-data.deb, будут найдены в src/debian/foo-data. Поскольку debian/rules по существу является только Makefile, вы можете начать представлять себе другие способы получения одного и того же результата.

4
задан 6 January 2011 в 22:25

16 ответов

О SDL pulseaudio вы можете просто установить libsdl1.2debian-alsa, он удалит версию pa-sdl и ссылку на библиотеки ALSA. Тем не менее, вы, вероятно, получите другую совместимость с бинарными / библиотеками, например, dv3500ea. Общий подход, позволяющий избежать проблем, связанных с системной зависимостью, заключается в использовании статической привязки. Это сделает бинарные файлы намного большими, потому что они включают требуемый код из библиотек.

Для получения дополнительной информации о проверке статической привязки: http://wiki.linuxquestions.org/wiki/Static_linking

1
ответ дан 29 May 2018 в 12:37
  • 1
    Кажется, что CMake поддерживает статические ссылки только неохотно, и я считаю, что есть некоторые библиотеки, которые я могу юридически не связывать статическими, но я буду изучать их. Libsdl debian package - хорошая идея, я буду использовать это :) – user 24 August 2010 в 09:42
  • 2
    Кажется, что CMake поддерживает статические ссылки только неохотно, и я считаю, что есть некоторые библиотеки, которые я могу юридически не связывать статическими, но я буду изучать их. Libsdl debian package - хорошая идея, я буду использовать это :) – user 24 August 2010 в 09:42
  • 3
    Кажется, что CMake поддерживает статические ссылки только неохотно, и я считаю, что есть некоторые библиотеки, которые я могу юридически не связывать статическими, но я буду изучать их. Libsdl debian package - хорошая идея, я буду использовать это :) – user 24 August 2010 в 09:42
  • 4
    Кажется, что CMake поддерживает статические ссылки только неохотно, и я считаю, что есть некоторые библиотеки, которые я могу юридически не связывать статическими, но я буду изучать их. Libsdl debian package - хорошая идея, я буду использовать это :) – user 24 August 2010 в 09:42
  • 5
    Кажется, что CMake поддерживает статические ссылки только неохотно, и я считаю, что есть некоторые библиотеки, которые я могу юридически не связывать статическими, но я буду изучать их. Libsdl debian package - хорошая идея, я буду использовать это :) – user 24 August 2010 в 09:42
  • 6
    Кажется, что CMake поддерживает статические ссылки только неохотно, и я считаю, что есть некоторые библиотеки, которые я могу юридически не связывать статическими, но я буду изучать их. Libsdl debian package - хорошая идея, я буду использовать это :) – user 24 August 2010 в 09:42

о СДЛ pulseaudio, вам можно просто установить libsdl1.2debian-alsa также, он будет удалить па-СДЛ версия и ссылка против АЛСА библиотеки. Еще вы, вероятно, получить другой двоичный/библиотека обзоры совместимости, как dv3500ea упомянул. Общий подход, чтобы избежать проблем, связанных с системой зависимостей, используя статическое связывание. Это позволит сделать код намного больше, потому что они включают необходимый код из библиотек.

для получения дополнительной информации о статической проверки: http://wiki.linuxquestions.org/wiki/Static_linking

1
ответ дан 25 July 2018 в 23:16

О SDL pulseaudio вы можете просто установить libsdl1.2debian-alsa, он удалит версию pa-sdl и ссылку на библиотеки ALSA. Тем не менее, вы, вероятно, получите другую совместимость с бинарными / библиотеками, например, dv3500ea. Общий подход, позволяющий избежать проблем, связанных с системной зависимостью, заключается в использовании статической привязки. Это сделает бинарные файлы намного большими, потому что они включают требуемый код из библиотек.

Для получения дополнительной информации о проверке статической привязки: http://wiki.linuxquestions.org/wiki/Static_linking

1
ответ дан 2 August 2018 в 04:32

О SDL pulseaudio вы можете просто установить libsdl1.2debian-alsa, он удалит версию pa-sdl и свяжется с ALSA-библиотеками. Тем не менее, вы, вероятно, получите другую совместимость с бинарными / библиотеками, например, dv3500ea. Общий подход, позволяющий избежать проблем, связанных с системной зависимостью, заключается в использовании статической привязки. Это сделает бинарные файлы намного большими, потому что они включают требуемый код из библиотек.

Для получения дополнительной информации о проверке статической привязки: http://wiki.linuxquestions.org/wiki/Static_linking

1
ответ дан 4 August 2018 в 21:07

О SDL pulseaudio вы можете просто установить libsdl1.2debian-alsa, он удалит версию pa-sdl и свяжется с ALSA-библиотеками. Тем не менее, вы, вероятно, получите другую совместимость с бинарными / библиотеками, например, dv3500ea. Общий подход, позволяющий избежать проблем, связанных с системной зависимостью, заключается в использовании статической привязки. Это сделает бинарные файлы намного большими, потому что они включают требуемый код из библиотек.

Для получения дополнительной информации о проверке статической привязки: http://wiki.linuxquestions.org/wiki/Static_linking

1
ответ дан 6 August 2018 в 04:37

О SDL pulseaudio вы можете просто установить libsdl1.2debian-alsa, он удалит версию pa-sdl и свяжется с ALSA-библиотеками. Тем не менее, вы, вероятно, получите другую совместимость с бинарными / библиотеками, например, dv3500ea. Общий подход, позволяющий избежать проблем, связанных с системной зависимостью, заключается в использовании статической привязки. Это сделает бинарные файлы намного большими, потому что они включают требуемый код из библиотек.

Для получения дополнительной информации о проверке статической привязки: http://wiki.linuxquestions.org/wiki/Static_linking

1
ответ дан 7 August 2018 в 22:47

О SDL pulseaudio вы можете просто установить libsdl1.2debian-alsa, он удалит версию pa-sdl и свяжется с ALSA-библиотеками. Тем не менее, вы, вероятно, получите другую совместимость с бинарными / библиотеками, например, dv3500ea. Общий подход, позволяющий избежать проблем, связанных с системной зависимостью, заключается в использовании статической привязки. Это сделает бинарные файлы намного большими, потому что они включают требуемый код из библиотек.

Для получения дополнительной информации о проверке статической привязки: http://wiki.linuxquestions.org/wiki/Static_linking

1
ответ дан 10 August 2018 в 10:52

О SDL pulseaudio вы можете просто установить libsdl1.2debian-alsa, он удалит версию pa-sdl и свяжется с ALSA-библиотеками. Тем не менее, вы, вероятно, получите другую совместимость с бинарными / библиотеками, например, dv3500ea. Общий подход, позволяющий избежать проблем, связанных с системной зависимостью, заключается в использовании статической привязки. Это сделает бинарные файлы намного большими, потому что они включают требуемый код из библиотек.

Для получения дополнительной информации о проверке статической привязки: http://wiki.linuxquestions.org/wiki/Static_linking

1
ответ дан 13 August 2018 в 17:27
  • 1
    Кажется, что CMake поддерживает статические ссылки только неохотно, и я считаю, что есть некоторые библиотеки, которые я могу юридически не связывать статическими, но я буду изучать их. Libsdl debian package - хорошая идея, я буду использовать это :) – user 24 August 2010 в 09:42

Создайте двоичный файл отдельно на каждой платформе, для которой вы хотите предоставить бинарные пакеты, и убедитесь, что вы распространяете исходный код, чтобы люди на других платформах могли создавать его для себя.

Обратите внимание, что Linux фокусируется на источнике совместимость, а не двоичная совместимость. Большинство дистрибутивов не совместимы друг с другом (даже Ubuntu и Debian полностью совместимы *).

Это несколько связанный вопрос: *

2
ответ дан 29 May 2018 в 12:37
  • 1
    Распределение источников на самом деле не вариант. Как это делают создатели Skype и т. Д.? – user 24 August 2010 в 01:30
  • 2
    Распределение источников на самом деле не вариант. Как это делают создатели Skype и т. Д.? – user 24 August 2010 в 01:30
  • 3
    Распределение источников на самом деле не вариант. Как это делают создатели Skype и т. Д.? – user 24 August 2010 в 01:30
  • 4
    Распределение источников на самом деле не вариант. Как это делают создатели Skype и т. Д.? – user 24 August 2010 в 01:30
  • 5
    Распределение источников на самом деле не вариант. Как это делают создатели Skype и т. Д.? – user 24 August 2010 в 01:30
  • 6
    Распределение источников на самом деле не вариант. Как это делают создатели Skype и т. Д.? – user 24 August 2010 в 01:30
  • 7
    Почему именно распределение источников не является вариантом? Будьте осторожны и убедитесь, что все библиотеки, с которыми вы связываетесь, разрешаете распространение без исходного кода. Вы должны быть в порядке, если все они лицензированы под LGPL, но если они лицензированы под GPL, вы ДОЛЖНЫ сделать исходный код доступным. Единственный способ обеспечить его работу - построить их на каждой платформе, которую вы хотите поддержать. (Для этого вы можете использовать что-то вроде виртуального бокса и устанавливать Debian, Fedora, OpenSUSE, Windows и т. Д. И строить на них двоичный пакет). – dv3500ea 24 August 2010 в 01:44
  • 8
    Приложение не является открытым исходным кодом, поэтому мне придется идти на двоичный дистрибутив. – user 24 August 2010 в 01:45
  • 9
    Приложение не является открытым исходным кодом, поэтому мне придется идти на двоичный дистрибутив. – user 24 August 2010 в 01:45
  • 10
    Приложение не является открытым исходным кодом, поэтому мне придется идти на двоичный дистрибутив. – user 24 August 2010 в 01:45
  • 11
    Приложение не является открытым исходным кодом, поэтому мне придется идти на двоичный дистрибутив. – user 24 August 2010 в 01:45
  • 12
    Приложение не является открытым исходным кодом, поэтому мне придется идти на двоичный дистрибутив. – user 24 August 2010 в 01:45
  • 13
    Приложение не является открытым исходным кодом, поэтому мне придется идти на двоичный дистрибутив. – user 24 August 2010 в 01:45
  • 14
    Если это ваша программа, вы всегда можете открыть ее с открытым исходным кодом :). Это ваш выбор, но если вы хотите только выпускать бинарные пакеты, это будет означать больше работы для поддержки разных платформ. – dv3500ea 24 August 2010 в 01:50

Создайте двоичный файл отдельно на каждой платформе, для которой вы хотите предоставить бинарные пакеты, и убедитесь, что вы распространяете исходный код, чтобы люди на других платформах могли создавать его для себя.

Обратите внимание, что Linux фокусируется на источнике совместимость, а не двоичная совместимость. Большинство дистрибутивов не совместимы друг с другом (даже Ubuntu и Debian полностью совместимы *).

Это несколько связанный вопрос: *

2
ответ дан 25 July 2018 в 23:16
  • 1
    Распределение источников на самом деле не вариант. Как это делают создатели Skype и т. Д.? – user 24 August 2010 в 01:30
  • 2
    Почему именно распределение источников не является вариантом? Будьте осторожны и убедитесь, что все библиотеки, с которыми вы связываетесь, разрешаете распространение без исходного кода. Вы должны быть в порядке, если все они лицензированы под LGPL, но если они лицензированы под GPL, вы ДОЛЖНЫ сделать исходный код доступным. Единственный способ обеспечить его работу - построить их на каждой платформе, которую вы хотите поддержать. (Для этого вы можете использовать что-то вроде виртуального бокса и устанавливать Debian, Fedora, OpenSUSE, Windows и т. Д. И строить на них двоичный пакет). – dv3500ea 24 August 2010 в 01:44
  • 3
    Приложение не является открытым исходным кодом, так что мне придется пойти на бинарный дистрибутив. – user 24 August 2010 в 01:45
  • 4
    Если это твоя программа, ты всегда можешь сделать это с открытым исходным кодом :). Хотя это полностью ваш выбор, и если вы хотите выпустить только бинарные пакеты это просто означает больше работы для поддержки различных платформ. – dv3500ea 24 August 2010 в 01:50

Создайте двоичный файл отдельно на каждой платформе, для которой вы хотите предоставить бинарные пакеты, и убедитесь, что вы распространяете исходный код, чтобы люди на других платформах могли создавать его для себя.

Обратите внимание, что Linux фокусируется на источнике совместимость, а не двоичная совместимость. Большинство дистрибутивов не совместимы друг с другом (даже Ubuntu и Debian полностью совместимы *).

Это несколько связанный вопрос: *

2
ответ дан 2 August 2018 в 04:32
  • 1
    Исходное распределение-это не вариант. Как создатели Skype и т. д. сделать это? – user 24 August 2010 в 01:30
  • 2
    Почему именно распределение источников не является вариантом? Будьте осторожны и убедитесь, что все библиотеки, с которыми вы связываетесь, разрешаете распространение без исходного кода. Вы должны быть в порядке, если все они лицензированы под LGPL, но если они лицензированы под GPL, вы ДОЛЖНЫ сделать исходный код доступным. Единственный способ обеспечить его работу - построить их на каждой платформе, которую вы хотите поддержать. (Для этого вы можете использовать что-то вроде виртуального бокса и устанавливать Debian, Fedora, OpenSUSE, Windows и т. Д. И строить на них двоичный пакет). – dv3500ea 24 August 2010 в 01:44
  • 3
    Приложение не является открытым исходным кодом, так что мне придется пойти на бинарный дистрибутив. – user 24 August 2010 в 01:45
  • 4
    Если это твоя программа, ты всегда можешь сделать это с открытым исходным кодом :). Хотя это полностью ваш выбор, и если вы хотите выпустить только бинарные пакеты это просто означает больше работы для поддержки различных платформ. – dv3500ea 24 August 2010 в 01:50

Создайте двоичный файл отдельно на каждой платформе, для которой вы хотите предоставить бинарные пакеты, и убедитесь, что вы распространяете исходный код, чтобы люди на других платформах могли создавать его для себя.

Обратите внимание, что Linux фокусируется на источнике совместимость, а не двоичная совместимость. Большинство дистрибутивов не совместимы друг с другом (даже Ubuntu и Debian полностью совместимы * ).

Это несколько связанный вопрос: С технической точки зрения, что такое отличается от Ubuntu по сравнению с другими дистрибутивами Linux?

2
ответ дан 4 August 2018 в 21:07

Создайте двоичный файл отдельно на каждой платформе, для которой вы хотите предоставить бинарные пакеты, и убедитесь, что вы распространяете исходный код, чтобы люди на других платформах могли создавать его для себя.

Обратите внимание, что Linux фокусируется на источнике совместимость, а не двоичная совместимость. Большинство дистрибутивов не совместимы друг с другом (даже Ubuntu и Debian полностью совместимы * ).

Это несколько связанный вопрос: С технической точки зрения, что такое отличается от Ubuntu по сравнению с другими дистрибутивами Linux?

2
ответ дан 6 August 2018 в 04:37

Создайте двоичный файл отдельно на каждой платформе, для которой вы хотите предоставить бинарные пакеты, и убедитесь, что вы распространяете исходный код, чтобы люди на других платформах могли создавать его для себя.

Обратите внимание, что Linux фокусируется на источнике совместимость, а не двоичная совместимость. Большинство дистрибутивов не совместимы друг с другом (даже Ubuntu и Debian полностью совместимы * ).

Это несколько связанный вопрос: С технической точки зрения, что такое отличается от Ubuntu по сравнению с другими дистрибутивами Linux?

2
ответ дан 7 August 2018 в 22:47

Создайте двоичный файл отдельно на каждой платформе, для которой вы хотите предоставить бинарные пакеты, и убедитесь, что вы распространяете исходный код, чтобы люди на других платформах могли создавать его для себя.

Обратите внимание, что Linux фокусируется на источнике совместимость, а не двоичная совместимость. Большинство дистрибутивов не совместимы друг с другом (даже Ubuntu и Debian полностью совместимы * ).

Это несколько связанный вопрос: С технической точки зрения, что такое отличается от Ubuntu по сравнению с другими дистрибутивами Linux?

2
ответ дан 10 August 2018 в 10:52

Создайте двоичный файл отдельно на каждой платформе, для которой вы хотите предоставить бинарные пакеты, и убедитесь, что вы распространяете исходный код, чтобы люди на других платформах могли создавать его для себя.

Обратите внимание, что Linux фокусируется на источнике совместимость, а не двоичная совместимость. Большинство дистрибутивов не совместимы друг с другом (даже Ubuntu и Debian полностью совместимы * ).

Это несколько связанный вопрос: С технической точки зрения, что такое отличается от Ubuntu по сравнению с другими дистрибутивами Linux?

2
ответ дан 13 August 2018 в 17:27
  • 1
    Распределение источников на самом деле не вариант. Как это делают создатели Skype и т. Д.? – user 24 August 2010 в 01:30
  • 2
    Почему именно распределение источников не является вариантом? Будьте осторожны и убедитесь, что все библиотеки, с которыми вы связываетесь, разрешаете распространение без исходного кода. Вы должны быть в порядке, если все они лицензированы под LGPL, но если они лицензированы под GPL, вы ДОЛЖНЫ сделать исходный код доступным. Единственный способ обеспечить его работу - построить их на каждой платформе, которую вы хотите поддержать. (Для этого вы можете использовать что-то вроде виртуального бокса и устанавливать Debian, Fedora, OpenSUSE, Windows и т. Д. И строить на них двоичный пакет). – dv3500ea 24 August 2010 в 01:44
  • 3
    Приложение не является открытым исходным кодом, поэтому мне придется идти на двоичный дистрибутив. – user 24 August 2010 в 01:45
  • 4
    Если это ваша программа, вы всегда можете открыть ее с открытым исходным кодом :). Это ваш выбор, но если вы хотите только выпускать бинарные пакеты, это будет означать больше работы для поддержки разных платформ. – dv3500ea 24 August 2010 в 01:50

Другие вопросы по тегам:

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