Оба RedHat и SUSE имеют давнюю корпоративную традицию Linux и смогли получить эти пакеты, выпущенные и протестированные для них. Со временем будет больше примеров пакетов, которые были протестированы для работы с Ubuntu. Фактически, многие такие пакеты с прошлого года приходят как проверенные на работу с Ubuntu. Поскольку Canonical заключает соглашения с другими поставщиками, будет больше сертифицированных Ubuntu пакетов.
Для вашего первого вопроса: если вы хотите создать программу, которая работает во всех дистрибутивах, создайте статический (по сравнению с динамическим) исполняемый файл. Исполняемый файл statically-linked не зависит от системных библиотек, поэтому может работать между дистрибутивами, если архитектура (например, Intel / AMD) одинакова.
Вот программа, [!d2 ]
int main(void)
{
printf("Hello, World!\n");
return 0;
}
Давайте скомпилируем как обычно,
$ gcc helloworld.c -o helloworld
$ ./helloworld
Hello, World!
$ ldd helloworld
libc.so.6 => /lib/libc.so.6 (0x00007f3cc3481000)
...
$
$ gcc helloworld.c -static -o helloworld_static
$ ./helloworld
Hello, World!
$ ldd helloworld_static
not a dynamic executable
$
Итак, что вы можете сделать с этой программой VHDL? Получите файл .rpm и преобразуйте его в .deb с помощью чужого. Затем установите. Если это сработает, вы в порядке. Если это не сработает, используйте ldd, чтобы выяснить, какой файл библиотеки отсутствует. В худшем случае создайте виртуальную машину для других дистрибутивов Linux и запустите там программу.
Похож на меня. Если вы хотите, чтобы это было исправлено, я бы предположил, что вы отмечаете в официальном отчете, что эта ошибка влияет на вас.
Существует еще одно обходное решение: Ссылка на статью
В основном говорится, что ~ / .config / monitors.xml не применяется при запуске. Таким образом, автор создал скрипт, который в основном делает что-то вроде этого:
xrandr --output LVDS --pos 1920x0 --output CRT1 --pos 0x0
... и добавляет его в программы запуска Gnome.