LINUX.ORG.RU

Каким способом можно собирать старый софт из исходников с оптимизацией?

 ,


0

1

Допустим у меня есть ноутбук N летней давности, с архитектурой Z. Я очень люблю одну программу X, из-за специфических функций и банально из-за привычки. Есть желание максимально ее оптимизовать и выжить все доступные соки производительности, заточить функционал под себя и тд. Но, она с зависимостями собирается только на старых дистрибутивах Linux, которыебольше не поддерживаются, а из-за новых версий библиотек современные не подходят.

1)Путь выкачивать список зависимостей вручную, потом их собирать ./configure make и тд. Это слишком трудно и много конфликтов, отчасти безумие. 2)Пакетный менеджер - apt-get в debian, создает ад зависимостей, в source base Linux - можно собирать только свежий софт, там непрерывное обновление. происходит. 3)chroot - ?! 4)Использование диструбива N давности, когда версия программы X была актуальной - анархизм. Может что-то еще есть?!


3)chroot - ?!

Что не так? Но запускать придётся в этом же чруте, если не соберёшь статически.

  1. Пропатчить программу под современные версии библиотек. Нужны соответствующие навыки.

  2. Flatpak или appimage. Я вообще не поддерживаю appimage, так как обширное их использование приведёт к бардаку, но в данном случае это может быть оправдано - если ты уже не используешь flatpak, тащить его ради одного приложения может быть бессмыссленно. Нужно будет в любом случае где то взять старые библиотеки, которые закинешь в пакет. Либо собрать руками либо стащить из старого дистрибутива.

eternal_sorrow ★★★★★
()

из-за новых версий библиотек современные не подходят.

Ничего не собирать. Все уже собрано до нас. Запускать примерно так.. В некотором роде, это аналог appimage/snap.

andytux ★★★★★
()

Может что-то еще есть?!

На FreeBSD откатываю локальную копию дерева портов на тот период, когда программа была ещё актуальна. И запускаю сборку обычным образом. Как правило, сборка проходит успешно. Иногда, правда, приходится архивы с исходниками искать по разным файлопомойкам и класть в distfiles, так как архивы старых программ не всегда там же, где и раньше.

iZEN ★★★★★
()
Последнее исправление: iZEN (всего исправлений: 1)

apt-get в debian, создает ад зависимостей, в source base

Комбинируй, разделяя «приятное» и «полезное». В debian есть apt-build, который соберёт нужные пакеты из исходников. Вот при сборке и добавишь свои «оптимизации». А все остальные пакеты из apt-get. Как Вам такое?

anonymous
()

исправить исходники для поддержки современных зависимостей

anonymous
()
Ответ на: комментарий от anonymous

apt-build - криво собирает в современных версия debian Linux, к тому же столькоб багов. К тому старые версии >3 лет ломаются об ад зависимостей. Ей можно пользоваться, но довольно ограниченного кол-ву софта.

nager
() автор топика
Ответ на: комментарий от nager

apt-build - криво собирает в современных версия debian Linux

Что то твоя «современная версия debian Linux» крайне подозрительна! Вы что то не договариваете!!!

anonymous
()

Давай конкретнее – что за софт и почему не собирается с новыми библиотеками. Пока это абстрактный вопрос, ничего конкретного сказать нельзя.

CYB3R ★★★★★
()

Тут есть секта свидетелей NixOS, попробуй их покастовать.

Использование диструбива N давности, когда версия программы X была актуальной - анархизм.

– он ветеринар.
– что, воевал?
– нет, мяса не ест.

pinus_nigra
()

У меня есть билд-ферма SLES 11, там Glibc 2.11 и GCC 4.3. Я обновил GCC до версии GCC 10 из репозитория devel:gcc. Теперь могу собирать новый софт в старых системах. И тебе соберу, если попросишь

ZenitharChampion ★★★★★
()

Поставь «старых дистрибутивах Linux, которыебольше не поддерживаются» в виртуалку и собирай/запускай там. Самый очевидный вариант.

media_absent
()
Ответ на: комментарий от CYB3R

Левая пятка желает иметь работающий браузер <= palemoon-28.17 c gtk2 , с порезанным функционалом и тюнинг CFLAGS + сборный компилятор gcc 4.8 специально заточенный под него него минималистичное окружение окружение на базе Centos6 или Debian 6, но запускающимся каким-то волшебным методом на linux mint 18…

nager
() автор топика
Ответ на: комментарий от nager

на базе Centos6 или Debian 6, но запускающимся каким-то волшебным методом на linux mint 18

Это и есть «Он»? Тот самый «современный debian linux»?

anonymous
()
Ответ на: комментарий от nager

Mint 18

ИМХО, у «современного debian linux» какие то проблемы? Интересно только как же тогда собирается бинарный дистрибутив? Получается, что не через «apt-source». А через что?

anonymous
()
Ответ на: комментарий от nager

palemoon-28.17 c gtk2

Так это относительно свежий и вроде собирается как раз с gtk2. Зачем что-то изобретать?

  • сборный компилятор gcc 4.8 специально заточенный под него него минималистичное окружение окружение на базе Centos6 или Debian 6, но запускающимся каким-то волшебным методом на linux mint 18

Хочешь собрать под D6, а запускать в LM18? А зачем? Почему не собрать под каждый отдельно?
Но если очень хочется, пускай из чрута или докера.

pinus_nigra
()
Ответ на: комментарий от nager

современные

Linux Mint 20.1

Debian 10

Centos – ой, его закопали

anonymous
()
Ответ на: комментарий от nager

Подожди. Разве версия 27.9.4 не была последней с зависимостью от GTK 2.18, а потом (в 28.0) требование подняли до 2.24?

ZenitharChampion ★★★★★
()
Последнее исправление: ZenitharChampion (всего исправлений: 1)
Ответ на: комментарий от anonymous

лох это ты, забыл написать про сексуальную 18 летнюю девушку и миллионе долларов на швейцарском счете.

anonymous
()

Контейнеры и флатпаки всякие для этого и придуманы

cobold ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.