Инсталаторът отпечатва “unsupported distribution”, вие редактирате един низ и той продължава, докато минута по-късно не се провали с грешка от зареждащия. Тази последователност е симптомът, който си струва да разпознаете: първият отказ беше проверка за разпознаване, а вторият е граница на съвместимост. Това са два различни проблема, които просто се появяват в един и същ терминал. Редактирането на проверката може само да ви премести от първия към втория.

Симптомът: инсталаторът спира на вашата производна дистрибуция

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

Проблемът започва, когато заобиколното решение стане план. Промяната на файл за идентичност прави проверката успешна и пакетът след това се зарежда или не се зарежда спрямо действително инсталираната среда за изпълнение. Ако се провали там, никакво допълнително редактиране на идентичността няма да помогне.

Затова полезният ход е да разберете какъв въпрос е задал инсталаторът и след това дали отговорът би имал значение. Това са две отделни разследвания и само второто предсказва дали пакетът ще работи.

Три версии, които хората наричат версия на системата

Изданието на дистрибуцията именува пакетирана среда. Версията на C библиотеката именува реализация на средата за изпълнение и нейното издание. Версията на компилатора именува верига от инструменти. В разговор хората наричат и трите “версия на системата”, но в инсталатор те не са взаимозаменяеми.

cat /etc/os-release
ldd --version | head -1
gcc --version | head -1
uname -m

Предварително изградено приложение очаква средата за изпълнение, налична при свързването му. Смяната на компилатори на хоста не го свързва отново и по-нова верига от инструменти не променя нищо в символите на зареждащия, които двоичният файл изисква. Архитектурата има значение отново отделно, защото 32-битов пакет на 64-битова система се проваля по причини, които никой низ за версия не обяснява.

Пазете четирите изхода заедно с доклада. Събирането им отнема десет секунди и те отговарят на повечето въпроси, които поддържащият иначе би ви задал по имейл.

Четете грешката, не проверката

Първата грешка при стартиране е доказателството. Съобщение за липсващ споделен обект или за версия на символ, която зареждащият не може да удовлетвори, е проблем със зависимост от средата за изпълнение. Съобщение, което повтаря името на дистрибуцията, е отново проверката за разпознаване, на друго място.

документацията на динамичния linker описва как работи търсенето на библиотеки и къде търси зареждащият. Промяната на етикет на дистрибуция не добавя директория към този път за търсене и затова вторият отказ изглежда несвързан с първия.

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

Защо редактирането на низа не помага

Фалшифицирането на идентичността на операционната система променя как всяка програма на машината вижда себе си. Мениджърите на пакети, инструментите за поддръжка и други приложения четат същия файл и стойност, която удовлетворява един инсталатор, може да обърка нещо друго месеци по-късно.

Замяната на библиотеките на хоста с файлове от друга дистрибуция е по-лошо. Тя може да счупи несвързан софтуер, невидима е за мениджъра на пакети и изисква план за поддръжка, който никой не записва. Такива промени не се оправдават от един ограничителен инсталатор.

Ако проверката наистина е дефект в разпознаването, поддържащият може да го потвърди и да опише поддържаната корекция. Ако не е дефект, поддържаният път е изграждане за вашата платформа и този отговор не се променя, защото низът е редактиран.

Напишете доклад, по който поддържащият може да действа

Запишете дистрибуцията и изданието, архитектурата, изданието на VPN, точното условие, което е било отхвърлено, и първата грешка от средата за изпълнение, ако сте стигнали дотам. Отбележете дали сте променили нещо, защото доклад от променена система е различен доклад.

Оставете оригиналния инсталатор непроменен и опишете проверката, вместо да я заобикаляте. Това разграничение позволява на поддържащия да отдели прекалено тясно правило за разпознаване от истинска граница на двоична съвместимост, което са два много различни бъга с две много различни поправки.

Ако отговорът е, че вашата платформа не се поддържа, това е използваем резултат. Той ви казва да търсите поддържана сборка, вместо да прекарате още една вечер върху файлове за идентичност, които никога не са били проблемът.

Подобни статии