Тестирование программы в разных ОС - PullRequest
2 голосов
/ 21 марта 2010

Я хочу протестировать свою программу, установив ее в разных версиях ОС. Мой компьютер для разработки - Ubuntu. Какие еще версии Linux я могу протестировать, установив их внутри VirtualBox и запустив там свою программу?

Хотя сейчас это не критично для меня, я хочу попробовать что-то другое и посмотреть, что произойдет.

Кроме того, какова вероятность того, что программа, работающая в Linux, будет работать в ОС Unix? Программа не с открытым исходным кодом, я могу распространять только готовые двоичные файлы.

Ответы [ 3 ]

4 голосов
/ 21 марта 2010

Давайте начнем с вершины. Вы создали программу в каком-то дистрибутиве Linux на каком-то языке программирования. Вы не сказали нам, что.

Если это в C, то ваши первые две проблемы - это hardware и glibc. Под аппаратным обеспечением я в первую очередь имею в виду 32-разрядный по сравнению с 64-разрядным, но также стоит отметить, что Linux работает на PPC, ARM и SPARC.

Если у вас 64-битная система, вы можете запустить 32-битную виртуальную машину и протестировать.

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

Для большинства программ версия glibc является адекватной заменой для версии ядра, но если вы будете работать над ней достаточно усердно, вы также можете создать зависимость от версии ядра.

Если вы программируете на C ++, у вас возникает дополнительное беспокойство: среда выполнения C ++ / libstdc ++. Не во всех дистрибутивах есть общие библиотеки, необходимые для запуска всех возможных программ.

В некоторых случаях программа, скомпилированная и связанная с более старой версией g ++, не найдет libstdc ++, который ей требуется в более новом дистрибутиве.

Тогда вы упоминаете «Unix». В современном мире не существует такого понятия, как Unix, в практическом смысле этого слова. Есть несколько систем, которые вы, возможно, захотите поддержать, о которых вы можете беспокоиться здесь>

  1. Семейство BSD: netbsd / freebsd. Вы можете запустить их в виртуальной машине. Вы не можете ожидать, что двоичные файлы будут перенесены.
  2. (Open) Solaris: Вы можете запустить это на виртуальной машине, по крайней мере, для чипов Intel. Вы не можете ожидать, что двоичные файлы будут перенесены.
  3. HP-UX: Вы не можете запустить это на виртуальной машине.
  4. AIX: вы не можете запустить это на виртуальной машине.

Поддержание кода, который работает во всем этом зоопарке, - большая работа, которую не следует предпринимать легко.

1 голос
/ 21 марта 2010

Вам нужно будет найти хороший способ распространения вашего приложения, если оно с закрытым исходным кодом. Вам нужно будет указать такие вещи, как необходимые библиотеки. Кроме того, вам может потребоваться предоставить множество сборок для различных архитектур (arm, x86, x64 и т. Д.). Существует множество дистрибутивов Linux и вариантов Unix - RedHat, SuSE, Debian, FreeBSD и т. Д. Вам нужно будет разработать множество комбо.

1 голос
/ 21 марта 2010

Единой «ОС Unix» не существует.Вы можете настроить FreeBSD или аналогичный на ВМ для тестирования с ОС, отличной от Linux.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...