LINUX.ORG.RU

Разбить бинарный пакет на части

 ,


0

2

Можно ли в gentoo разделить бинарный пакет с библиотекой на два пакета — базовый, где непосредственно библиотека (*.so) и -devel, где доки, заголовки и пр. необходимое для компиляции с этой библиотекой? Чтобы на другую машину можно было установить только нужные для работы файлы, а потом, если понадобилось там что-то пособирать, доставить -devel пакеты.

★★★★★

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

annulen ★★★★★
()

Исправить ebuild и удалять ненужное перед установкой. Потом посредством quickpkg сделать архив бинарной сборки программы.

Не совсем понятно только что ты хочешь - то что нужно для сборки твоего .so и есть -devel.

А откуда ты собираешься брать уже собранный .so?

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

Я собираюсь на одной более-менее нормальной машине собирать бинарные пакеты для трёх других старых, слабых, выключаемых на ночь компов. И на тех трёх компах мне особо ничего не нужно — браузер, ssh ну может плеер музыки. И зачем мне там лишние файлы типа info от libc? Но вдруг делать будет совсем нечего и захочется написать какой-нибудь helloworld на Си, тогда /usr/include/headers понадобится.

Мне уже вобще стало интерестно, если бинарный пакет gentoo «разобрать», выкинуть из tar-а какие-то файлы, то потом его обратно собрать можно?

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

Я подразумевал компилить что-то самописное, не относящееся к системным файлам.

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

Если это организация, а пользователи - программисты, то впослне реально составить белый список пакетов, которые не поторошить

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

Хотя лично я в таком случае вообще бы ничего не потрошил, отделение devel-пакетов нужно главным образом для серверов и embedded-систем, а на рабочих станциях это всего лишь небольшая экономия дискового пространства

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

хочется странного.

portage вообще сможет установить бинарный пакет, которого нет в дереве? потому что твоих этих *-devel пакетов в дереве нет

eternal_sorrow ★★★★★
()
Ответ на: комментарий от annulen

Эти все компы мои, я хожу между тремя офисами одной фирмы, везде есть столик у углу и комп из хлама. Не нравится мне лазить в интернет со смартфона, править конфиги без 105-клавишной клавиатуры и т.д. И иногда нужно просто сидеть и чего-то ждать, развлекаюсь написанием говнокода :)

главным образом для серверов и embedded-систем,

Вдруг мне захочется совсем странного — поставить gentoo на почтовый сервере и на Raspberry Pi :)

Вроде схема то простая получается — собираем пакет, скриптом из пакета (допустим sys-libs/glibc-2.29-r2.tbz2) вытаскиваем все *.h файлы, создаём из них в оверлее пакет sys-libs/glibc-useless-2.29-r2.tbz2, у которого в зависимостях именно этот glibc-2.29-r2. На слабой машине ставится только glibc, а если надо, доустанавливаем glibc-useless. Хочу понять какие у этой схемы подводные камни.

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

На слабой машине

Слабая машина сейчас это роутер с 8 мегабайтами флеша и 32 мегабайтами ОЗУ. Raspberry Pi — не слабая машина. И на microSD-карточке достаточно места для заголовков и статических версий библиотек. Симлинки .so даже считать не стоит.

i-rinat ★★★★★
()
Ответ на: комментарий от mky

и ты будешь пилить ebuild для каждого такого пакета? и что в этом ebuild’е будет? скрипт для вот этого?

собираем пакет, скриптом из пакета (допустим sys-libs/glibc-2.29-r2.tbz2) вытаскиваем все *.h файлы, создаём из них в оверлее пакет sys-libs/glibc-useless-2.29-r2.tbz2, у которого в зависимостях именно этот glibc-2.29-r2.

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

g-cpan ведь как-то пилит ebuild для каждой фигни из CPAN, я просто пока, наверное, чего-то не знаю, что сделат написание подобного скрипта сложным/невозможным.

mky ★★★★★
() автор топика
Ответ на: комментарий от i-rinat

Слабая в смыле не получится скомпилировать chromium.

И на microSD-карточке достаточно места для заголовков

Возможно, но что такое сотня килобайт при десятках Гбайт ОЗУ? Тем не менее ядро гордо пишет при загрузке на сервере:

Freeing unused kernel memory: 144K

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

Тогда сам запакуй в 2 разных архива и напиши ebuild, который ставит из этих двух архивов. Я так доки к одному пакету делал: они собирались в рамках системы сборки самого пакета. Я их отдельно скопировал, запаковал и после отдельным ebuild ставил.

grem ★★★★★
()
Ответ на: комментарий от mky

Freeing unused kernel memory: 144K

Там байты и циклы экономят, это нормально.

i-rinat ★★★★★
()

думаю такое вполне возможно

можно сделать один ebuild с use например dev man doc handbook minimal или свой, не знаю какой лучше, и в зависимости от use прописать разные зависимости, есть зависимости для сборки, а есть зависимости выполнения, также можно выбрать файлы которые от use зависят, а можно просто прописать на другую машину FEATURES="noman noinfo nodoc" в make.conf, но ebuild нужны разные функции использовать, а не просто копировать, сборку производить c ROOT=/трололо или SYSROOT не помню и PORTAGE_CONFIGROOT=/трололо

Deleted
()
Последнее исправление: Deleted (всего исправлений: 3)

и ты будешь пилить ebuild для каждого такого пакета?

гентушник лентяй, и к тому же не экономный

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

Если нужно, гони, разрешаю. Ко мне это какое отношение имеет?

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