LINUX.ORG.RU

Простейший портаж менеджер


0

1

Есть задача собирать и устанавливать на конечной машине некоторый опенсоурсный софт: в частности nginx, python и ещё по мелочи (в максимуме штук двадцать пакетов). Изначально не известена ось. Это может быть любой Linux, Solaris или AIX.

Поэтому необходим небольшой сборщик, умеющий разруливать зависимости (базу знаний я ему сам задам), собирать софт и быть маленьким. Лучше если он написан на bash, perl или чистом C - все остальное не годится.

Кто-нибудь сталкивался?

★★★★
Ответ на: комментарий от Spirit_of_Stallman

Там ничего сложного на самом деле. Только не верится, что никто этого не делал раньше.

Поясняю, возможное недорозумение: разруливать зависимости нужно только между пакетами которые он ставит - проверять, что поставлено системой не нужно. Ставится все в отдельный prefix (типа /megaproga), поэтому никакой каши и Слаквари в системе он создавать не должен.

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

Ну, я с этим не сталкивался.
Да и ко всему нахожу это абсурдным, ибо так или иначе гладко ничего не будет, потом ищи вычленять из отладок, да самого скрипта.
Как на меня - время разработки и затачивания - неоправданно.
ЗЫ: если, конечно же, каждый день, по 10ть раз, не ставить подобное.

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

Там ничего сложного на самом деле.

Так напиши сам, в чём проблема?

Лучше если он написан на bash

Уверен, что он там будет?

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

Можно же руками разрулить и просто поставить в нужном порядке по списку.

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

Вот, как раз речь и идет про частую установку.

Тогда под руководством «Там ничего сложного на самом деле» - начинайте разработку.
А когда закончите, выстрадаете - не забудьте отдать это обществу, и под вменяемой лицензией.

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

Так напиши сам, в чём проблема?

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

Уверен, что он там будет?

Ну да, пожалуй ksh лучше.

Можно же руками разрулить и просто поставить в нужном порядке по списку.

Частенько приходится, лучше один раз написать, чтоб потом не мучаться.

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

А вот подробнее можно?

По-подробней, как я не сталкивался с подобным скриптом-сборщиком?
Вам полную биографию, или только основные моменты жизни?

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

Гы, я, «не» не увидел.

Вам полную биографию, или только основные моменты жизни?

Чтож вы злой такой. Обидел я вас чем-то?

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

Чтож вы злой такой. Обидел я вас чем-то?

Вы? Нет. Я такой по жизни.
Но это уже флуд в тех.разделе. Незачем мусорить.
Резюмирую:
Такого не встречал. Считаю это не целесообразным (если, правда, не сделать один большой универсальный сборщик, который будут актуализировать и следить за ним, большим обществом). Желаю найти что нужно, или сделать как нужно. В последнем - буду ждать серцов.

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

Ну, блин, хватает же мне сейчас confiugre <bla-bla-bla> && make && make install. Поэтом ещё ставится три пакета питоньих и все.

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

bsd make автоматически устанавливается при бутстрапе, язык пакетов проще, чем дебиановский. И куча уже готовых пакетов.

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

хватает же мне сейчас confiugre <bla-bla-bla> && make && make install

Ы? Так тебе просто собрать, или собрать с определенными опциями, подтягивая пакеты с зависимостями?

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

Ок, я посмотрю, но уж очень мне он толстым кажется. Это все равно, что пол NetBSD себе притащить.

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

Так тебе просто собрать, или собрать с определенными опциями, подтягивая пакеты с зависимостями?

Эти опции задаю я на этапе подгодтовки пакета. Поэтому все зависимости жесткие. Т.е. мне надо, чтобы конечный пользователь запустил у себя на компе простую операцию:

wget://sharazka.ru/repo/bootstrap && ./bootstrap && wannaberpm install megaproga

А затем мог в любой момент сделать:

wannaberpm update megaproga

или

wannaberpm update megaproga-httpd megaproga-app

То, что за этой magaproga скрывается определенный набор пакетов, как опенсоурс, так и клозед соурс это уже мои трудности.

На данный момент я уже обладаю скриптом, который делает install в чистом поле, но пока не умеет update - это сложнее, разумеется. Кроме того, я понял, что FHS здесь не уместен. Дешевле собирать в директорию opt/<package>-<version>, а потом ln -s и export PATH в нужных местах - при апдейте это здорово помогает.

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

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

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

Да здесь вообще никакой проблемы нет, но я хочу сделать более менее универсальное решение. Т.е. можно сейчас, на коленке налабать два скрипта: install и update, внутри которых прописаны все зависимости, мейки идут сплошным потоком и т.д.

Но хотелось бы гибкости: чтобы скрипт брал правила для сборки из самого пакета, умел понимать, что этот пакет требует обновления и обновлял только то что реально нужно. Короче говоря нужен portage, только значительно проще: без use флагов, опций сборки и прочего.

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

Но хотелось бы гибкости: чтобы скрипт брал правила для сборки из самого пакета, умел понимать, что этот пакет требует обновления и обновлял только то что реально нужно.

(пожимая плечами) Добавить список зависимостей - делов на час, обновление «реально нужных» сводится к cat | sort | uniq | xargs wget.

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

Вот по тому и говорю, что это просто. И не верю, что я первый об этом подумал, но как-то не гуглится ничего.

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

Мало кому нужна такая простая вещь, а те, кому она нужна, и не подумают ее публиковать.

tailgunner ★★★★★
()

pkgsrc, pkgtools.

задача собирать и устанавливать на конечной машине некоторый опенсоурсный софт

make или mk, нет?

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

Не умеет update, не умеет фичить дистфайлы. Т.е. слишком уж приметивен. Кстати, кто скажет в какой момент portage на python перехал?

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

Не умеет update, не умеет фичить дистфайлы. Т.е. слишком уж приметивен. Кстати, кто скажет в какой момент portage на python перехал?

Довольно быстро. Тут заложены идеи и есть база, дальше берёшь лопату и ... =) если там всего 20 пакетов, то адаптированно для них накидать что угодно можно.

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