LINUX.ORG.RU

История изменений

Исправление LINUX-ORG-RU, (текущая версия) :

В chroot всё держи. Его и таскай. В нём всё и разворачивай. Это дабы обойти необходимость явно собирать все зависимости. Минимальный дистрибутив через debootstrap или аналог разворачиваешь, внутри что надо ставишь или компиляешь.

PREFIX всегда должен быть абсолютным, а вот DESTDIR может быть чем угодно, он подменяет корень. Ты можешь собрать например так --prefix=/usr/local, а DESTDIR для установки задать как ./myexperimentdir и получишь такое ./myexperimentdir/usr/local если ты сделаешь chroot ./myexperimentdir (где должна быть оболочка ещё быть в ./myexperiment/bin/sh) ты с делашь так что для программ будет видно просто /usr/local/чётотам.

Но это лишь один из путей, либо симулируешь корень системы, чрут,докер,фигокер. Либо собираешь вообще все завимсимости, укладываешь их как тебе угодно и через LD_PRELOAD LD_LIBRARY_PATH задаёшь откуда всё будет браться из выдуманной тобой структуры каталогов, может ещё придётся расковырять ПО которое не подразумевает что будет запускаться из произвольного места с произвольным расположением ресурсов.

Для некоторого ПО твоё желание реализуется очень просто и без костылей, а с некоторым придётся плясать если хочешь прям всё сам, просто оно предполагает некие договорённости о том что и где лежит, а ты хочешь свои. Либо дай этому ПО эти договорённости развернув всё в чруте или его аналоге, либо придётся (и в этом нет ничего такого просто сложнее) делай специализированную сборку.

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

Конпиляй в чруте короче =) Чрут просто каталог с файлами получится,со всеми программами, библиотеками и настройками.

Про appimage сказали ещё. Но там тоже курить надо. Хотя можно чрут в appimage целиком запихать и получить 1 файлик для запуска вообще всего.

А можно просто ход конём, скрипт который тебе на другой машине всё установит, запишет конфигурацию в конфиги, что надо запустит и всё.

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

Ну и от ПО зависит, собрать луа и таскать бинарник с собой куда угодно это одно, а собрать мариадб и её таскать это другое :) Я второе не пробовал, но кажется не всё пойдёт гладко если делать влоб

Исправление LINUX-ORG-RU, :

В chroot всё держи. Его и таскай. В нём всё и разворачивай. Это дабы обойти необходимость явно собирать все зависимости. Минимальный дистрибутив через debootstrap или аналог разворачиваешь, внутри что надо ставишь или компиляешь.

PREFIX всегда должен быть абсолютным, а вот DESTDIR может быть чем угодно, он подменяет корень. Ты можешь собрать например так --prefix=/usr/local, а DESTDIR для установки задать как ./myexperimentdir и получишь такое ./myexperimentdir/usr/local если ты сделаешь chroot ./myexperimentdir (где должна быть оболочка ещё быть в ./myexperiment/bin/sh) ты с делашь так что для программ будет видно просто /usr/local/чётотам.

Но это лишь один из путей, либо симулируешь корень системы, чрут,докер,фигокер. Либо собираешь вообще все завимсимости, укладываешь их как тебе угодно и через LD_PRELOAD LD_LIBRARY_PATH задаёшь откуда всё будет браться из выдуманной тобой структуры каталогов, может ещё придётся расковырять ПО которое не подразумевает что будет запускаться из произвольного места с произвольным расположением ресурсов.

Для некоторого ПО твоё желание реализуется очень просто и без костылей, а с некоторым придётся плясать если хочешь прям всё сам, просто оно предполагает некие договорённости о том что и где лежит, а ты хочешь свои. Либо дай этому ПО эти договорённости развернув всё в чруте или его аналоге, либо придётся (и в этом нет ничего такого просто сложнее) делай специализированную сборку.

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

Конпиляй в чруте короче =) Чрут просто каталог с файлами получится,со всеми программами, библиотеками и настройками.

Про appimage сказали ещё. Но там тоже курить надо. Хотя можно чрут в appimage целиком запихать и получить 1 файлик для запуска вообще всего.

А можно просто ход конём, скрипт который тебе на другой машине всё установит, запишет конфигурацию в конфиги, что надо запустит и всё.

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

Исправление LINUX-ORG-RU, :

В chroot всё держи. Его и таскай. В нём всё и разворачивай. Это дабы обойти необходимость явно собирать все зависимости. Минимальный дистрибутив через debootstrap или аналог разворачиваешь, внутри что надо ставишь или компиляешь.

PREFIX всегда должен быть абсолютным, а вот DESTDIR может быть чем угодно, он подменяет корень. Ты можешь собрать например так --prefix=/usr/local, а DESTDIR для установки задать как ./myexperimentdir и получишь такое ./myexperimentdir/usr/local если ты сделаешь chroot ./myexperimentdir (где должна быть оболочка ещё быть в ./myexperiment/bin/sh) ты с делашь так что для программ будет видно просто /usr/local/чётотам.

Но это лишь один из путей, либо симулируешь корень системы, чрут,докер,фигокер. Либо собираешь вообще все завимсимости, укладываешь их как тебе угодно и через LD_PRELOAD LD_LIBRARY_PATH задаёшь откуда всё будет браться из выдуманной тобой структуры каталогов, может ещё придётся расковырять ПО которое не подразумевает что будет запускаться из произвольного места с произвольным расположением ресурсов.

Для некоторого ПО твоё желание реализуется очень просто и без костылей, а с некоторым придётся плясать если хочешь прям всё сам, просто оно предполагает некие договорённости о том что и где лежит, а ты хочешь свои. Либо дай этому ПО эти договорённости развернув всё в чруте или его аналоге, либо придётся (и в этом нет ничего такого просто сложнее) делай специализированную сборку.

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

Конпиляй в чруте короче =) Чрут просто каталог с файлами получится,со всеми программами, библиотеками и настройками.

Про appimage сказали ещё. Но там тоже курить надо. Хотя можно чрут в appimage целиком запихать и получить 1 файлик для запуска вообще всего.

Исходная версия LINUX-ORG-RU, :

В chroot всё держи. Его и таскай. В нём всё и разворачивай. Это дабы обойти необходимость явно собирать все зависимости. Минимальный дистрибутив через debootstrap или аналог разворачиваешь, внутри что надо ставишь или компиляешь.

PREFIX всегда должен быть абсолютным, а вот DESTDIR может быть чем угодно, он подменяет корень. Ты можешь собрать например так --prefix=/usr/local, а DESTDIR для установки задать как ./myexperimentdir и получишь такое ./myexperimentdir/usr/local если ты сделаешь chroot ./myexperimentdir (где должна быть оболочка ещё быть в ./myexperiment/bin/sh) ты с делашь так что для программ будет видно просто /usr/local/чётотам.

Но это лишь один из путей, либо симулируешь корень системы, чрут,докер,фигокер. Либо собираешь вообще все завимсимости, укладываешь их как тебе угодно и через LD_PRELOAD LD_LIBRARY_PATH задаёшь откуда всё будет браться из выдуманной тобой структуры каталогов, может ещё придётся расковырять ПО которое не подразумевает что будет запускаться из произвольного места с произвольным расположением ресурсов.

Для некоторого ПО твоё желание реализуется очень просто и без костылей, а с некоторым придётся плясать если хочешь прям всё сам, просто оно предполагает некие договорённости о том что и где лежит, а ты хочешь свои. Либо дай этому ПО эти договорённости развернув всё в чруте или его аналоге, либо придётся (и в этом нет ничего такого просто сложнее) делай специализированную сборку.

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

Конпиляй в чруте короче =) Чрут просто каталог с файлами получится,со всеми программами, библиотеками и настройками.