О чем я должен знать, если я хочу записать приложение, которое будет работать на каком-либо дистрибутиве Linux?

Жесткая ссылка сохранит файл на диске до всех жестких ссылок на него, даже первое ("имя файла" является технически жесткой ссылкой), были удалены. Гибкую ссылку можно оставить, "свиснув" до файла, на который она указывает (s/ed) к заменяется.

15
16.12.2010, 11:29
6 ответов

Некоторые точки для учета при разработке,

  1. Используйте стандартную систему сборки
  2. Постарайтесь не трудно кодировать пути к библиотеке
  3. используйте инструменты как pkg-config найти внешние пакеты вместо этого.
  4. Если Ваше приложение имеет GUI, используйте некоторые платформы как wxWidgets который может представить собственные элементы UI в зависимости от того, куда Вы работаете.
  5. Постарайтесь не создавать зависимости с пакетами, которые не будут работать на других дистрибутивах.

Единственный способ полностью гарантировать Ваши работы приложения над всеми дистрибутивами состоит в том, чтобы на самом деле выполнить и протестировать на нем. Одним путем Вы могли сделать, это путем создания виртуальных машин для каждого дистрибутивы. VirtualBox может использоваться, чтобы сделать это. У меня есть приблизительно 8 виртуальных машин на моем поле для этого вида тестирования.

Я думаю, что Вы не можете сделать вывод слишком много при развертывании приложения, поскольку каждое распределение использует различный способ установить пакеты. Использование Debian deb и мягкая фетровая шляпа rpm.

10
27.01.2020, 19:50
  • 1
    просто старается не трудно кодировать пути, самым большим различием между ВСЕМ дистрибутивом является их диспетчер пакетов, и куда они помещают вещи. Предположите, что они положат каждый файл и каталог на различное место от Вас. –  xenoterracide 16.12.2010, 18:31

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

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

2
27.01.2020, 19:50

Если Вы пишете для невстроенного Linux, главное иметь в виду состоит в том, что различные дистрибутивы будут иметь другой набор версий библиотеки. Таким образом, необходимо установить достаточно старую базовую линию. Поскольку Debian медленно обновляет, стабильный Debian (или oldstable, когда он существует, через несколько месяцев после выпуска) имеет тенденцию быть разумным выбором.

Необходимо будет упаковать отдельно для каждого распределения. Если Ваше приложение является открытым исходным кодом и вообще успешный, можно рассчитывать на кого-то берущего его и вносящий упаковку, таким образом, это не важный навык. Кроме упаковки, различия между дистрибутивами главным образом влияют на системное администрирование, не разработку или ежедневное использование.

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

Обратите внимание, что то, что я записал выше, не верно, если Вы хотите свое рвение во встроенных системах (сюда значение чего-либо, что это не сервер, рабочий стол или ноутбук), который, даже когда они работают, ядро Linux часто не имеет обычными библиотеками, начиная с Glibc, сторонившегося в пользу µClibc, dietlibc, Бионическими, и т.д.

2
27.01.2020, 19:50

Я нашел Linux Standards Base быть полезным, особенно когда Ваше приложение включает сервисы (демоны). Посмотрите некоторые из этих сайтов:

Но если бы я должен был быть ограничен просто ресурсом, то это мог бы быть Стандарт Файловой иерархии.

1
27.01.2020, 19:50

Дистрибутивы отличаются главным образом по значениям по умолчанию/конфигурациям приложения и упаковке. Каждый код, который работает в determinated архитектуре, должен работать на каждом дистрибутиве для той архитектуры. Также можно легко запустить приложения GNOME в KDE и наоборот, таким образом, можно выбрать тот, который подходит лучше всего Вы/Ваши база пользователей, и Вы сделаны!

0
27.01.2020, 19:50

Главное выбирает язык. В каком языке это будет выполнено? Если Вы действительно хотите работать на каком-либо дистрибутиве Linux, Вы могли бы записать это в Python. Любое приложение Python, которое будет работать на Linux, будет (в основном) работать на любом дистрибутиве Linux с 0 модификациями.

Python также имеет действительно хороший GTK и спокойные редакторы связей. Я никогда не работал с gtk, но PyQt является действительно большим работать с.

Преимущества для Python - то, что Вы не должны будете, вероятно, компилировать расширения (он полностью зависит от того, что Вы пишете все же. Даже если Вы действительно должны, это довольно легко.) и у Вас также есть большой источник распределения через pypi. Установка программ Python оттуда обычно еще легче, чем хранилище пакетов дистрибутива.

0
27.01.2020, 19:50

Теги

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