LINUX.ORG.RU

UFLPM - Пакетный менеджер

 , , , ,


0

2

Здравствуйте, дорогие обитатели ЛОРа.

Не так давно я начал разработку пакетного менеджера, который на данный момент имеет временное название UFLPM (User Friendly Linux Package Manager), который, по моему мнению, должен стать крайне простым для пользователей.

В первую очередь я хочу ввести возможность установки пакетов в /home{/usr, /etc}, что позволит пользователям устанавливать и настраивать некоторые программы без прав администратора, как и для всех пользователей, так и для одного определенного пользователя (текущего).

Помимо этого будет возможность устанавливать пакеты по старинке, но по задумке таким образом будут устанавливаться только системные программы вроде grub, kernel, etc.

Так же у пакетного менеджера будет GUI, которое позволит делать для пакетов графические инсталяторы ака msi.

Так же, как приверженец gentoo я решил унаследовать систему портажей, но при этом не прибегать к их костылям. В локальной копии репозитория будут текстовые файлы с инструкциями к установке, конфигурации и удалению пакета, но так же будут доступны пакеты (в виде архивов), в которых будут эти самые инструкции, а так же файлы самой программы.

Помимо этого от gentoo, я считаю, стоит перенять систему профилей, что позволит соблюдать управление версиями таких дистрибутивов как debian, gentoo и свою собственную систему версий.

Пишу на python, первоначально хотел писать на С++, но не решился затягивать это в долгострой.

Если есть какие-то предложения можете писать в данную тему или на почту uflpm.info@gmail.com

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


Блин, а я тоже самое пилю, токо плохо все, и на башике пилю
Удачи, дружок
Тем более на питоне будет эффективнее и быстрее! Жду релиза
Как нибудь свяжусь и покидаю идейки

mystery ★★ ()

возможность установки пакетов в /home

Вот это меня больше всего пугает. Автор пытается превратить наш уютненький Линукс в винду с аналогом Program Files?

w1nner ★★★★★ ()

Удачи, но неплохо было бы, чтобы пакет подходил для всех систем. Теоретически это можно сделать. Я так думаю.

hibou ★★★★★ ()

которое позволит делать для пакетов графические инсталяторы ака msi.

реестра не хватает

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

ака msi это информация о пакете, соглашение с лицензией и настройка пакета перед установкой, ну и так же прогресс-бар установки.

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

Вы считаете, что плохо дать возможность пользователю установить пакеты без sudo, а так же устанавливать пакеты только для себя (к примеру порно игры)

uflpm ()

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

А для разработчиков этих самых пакетов? Ты о них подумал? В итоге тебе под свой менеджер пакетов придётся весь софт самому причёсывать. И с этими тысячами пакетов ты будешь один.

возможность установки пакетов в /home/usr

Для этого есть /home/.local, но туда пока никто ничего не ставит, только скриптики свои кидают обычно.

/home/etc

НАРКОМАН! Есть стандарт, и по нему конфиги пользователя хранятся в /home/.config.

как и для всех пользователей

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

по старинке

То есть ты такой умный, пришёл, и объявил всё, что налаживалось годами — устаревшим?

как приверженец gentoo ... не прибегать к их костылям

Ты devmanual в глаза хоть видел? Костыли у него... Сам-то что пилишь?

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

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

Помимо этого от gentoo, я считаю, стоит перенять систему профилей, что позволит соблюдать управление версиями таких дистрибутивов как debian, gentoo и свою собственную систему версий.

Ты хоть частично представляешь, как работают профили в Gentoo? Версиями он собрался управлять...

Концепция сильно сырая.

прав администратора

у пакетного менеджера будет GUI

графические инсталяторы ака msi

Свали обратно на свой оффтопик!

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

Автор пытается превратить наш уютненький Линукс в винду с аналогом Program Files?

Хуже. Автор хочет, чтобы у любого бесправного пользователя были права на запись в исполняемые файлы, а это значит, что если очередная установленная в ~ программа окажется с вирусом, то после её запуска все программы в ~ будут заражены этим же вирусом.

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

информация о пакете

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

соглашение с лицензией

Латентный подоконник детектед!

настройка пакета перед установкой

Перед каждой установкой и обнвлением тратить время на настройку пакета? А если у меня в обновлении прилетело сто пакетов? У portage есть конфиги, куда один раз вписал нужное, и забыл.

прогресс-бар установки

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

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

Перетаскать саму концепцию профилей, не значит сделать их аналогичными.

По поводу первого пункта - об удобности для разработчиков я позабочусь.

2 и 3 пункт, спасибо.

Добавлям в /home/.config и в /home/.local папки с именами пользователей, вот и вам пакет для одного пользователя, а если тыкать в саму папку .local и в папку .config, то пакеты для всех пользователей.

По поводу костылей генты, вы реально считаете, что создание локального репозитория со своими ебилдами для установки пакета это не костыль? Не проще сгенерировать и установить пакет (генератор пакетов тоже будет, удобность для разработчиков, как ни как).

Локальная копия репозитория аналогична портажам в gentoo, а получение с пакетом одного лишнего файлика по типу .ebuild внутри (в архиве пакета), не думаю, что это большая проблема.

Но еще раз спасибо и за советы, и за то, что показали мне старый добрый лор. Лор без закидывания фекалиями это не лор и это есть хорошо, критика в любой форме это хорошо.

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

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

Придёт рут, и снесёт юзера вместе с домашней директорией. Делов-то!

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

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

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

Есть лицензии с которыми нужно соглашаться, как ни как.

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

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

По поводу описания пакета, что-то в минте никто не жалуется.

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

подобных программ единицы и они имеют свой *.run, так что не нужно.

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

саму концепцию профилей

Ты совсем не читал документацию!

Добавлям в /home/.config и в /home/.local папки с именами пользователей, вот и вам пакет для одного пользователя, а если тыкать в саму папку .local и в папку .config, то пакеты для всех пользователей.

У пользователя НЕТ прав писать выше своей директории. То есть в /home он уже писать не может, только в /home/user/.{config,local}. И если ты пользователю дашь права на запись в /home, то остальные пользователи будут под угрозой, ведь пользователь сможет прочитать приватные ключи, удалить или подменить файлы другого пользователя.

Не проще сгенерировать и установить пакет

Ты будешь генерировать пакет со всеми вариантами сборки (с десятью юзами это более тысячи вариантов) ещё и под каждую архитектуру? А если мне нужно наложить свой патч на нужный мне пакет? В генте для этого есть инструменты. Если же речь идёт об изобретении пакетного менеджера с бинарными пакетами, тогда тег gentoo в топике лишний.

получение с пакетом одного лишнего файлика по типу .ebuild внутри (в архиве пакета), не думаю, что это большая проблема.

Не одного, а целой пачки. Как пакетный менеджер узнает об обновлении или появлении пакета в дереве?

еще один костыль генты

Bullshit! Можно назвать пакет app-shit/ololo-2, и без указания версии пакетный менеджер уровня portage сойдёт с ума, разбирая, версию ему указали или это часть имени пакета, хотя с версией он должен выглядеть так: app-shit/ololo-2-3.14. Естественно, так никто не делает, но предохраняться стоит.

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

Есть лицензии с которыми нужно соглашаться, как ни как.

Лицензию можно прочитать в любой момент, ибо копии всех лицензий хранятся локально. А видеть каждый раз её, да ещё и лишние телодвижения делать — не хорошо.

При обновлении не нужно будет его настраивать, да и при установке это не обязательно

Пример: нужно установить пакет, который тянет за собой ряд зависимостей, которые в свою очередь тянут свои зависимости; нужно решить, какие зависимости нужны, какие — нет. Как это будет реализовано из гуя, как будет храниться, в каком формате и где?

что-то в минте никто не жалуется.

Говноеды не знают, что они едят говно. Им сказали, что это вкусно, и они покорно наслаждаются.

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

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

По поводу прав, можно дать права на запись в .config, .local внутри /home/, но при этом запретить запись в папки пользователей или вообще сам /home, возможно я где-то ошибаюсь. Поправьте, пожалуйста.

По поводу последнего пункта, вот именно, что так никто не делает, как вариант попросту заменить -2-* на :2-* или подобный вариант.

uflpm ()

Если честно не понял в чём киллер-фича. Возможность ставить пакеты в home?

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

В приоритете он бинарен

Тогда нам не очем больше общаться. Я не вижу смысла превращать генту в очередную убунту.

По поводу прав

Тогда проще делать всё это в /opt.

По поводу последнего пункта

В именах пакетов использовать двоеточие? Ладно, предположим, но тогда у тебя будут проблемы со слотами. Или у тебя не предусмотрена установка некоторых пакетов одновременно?

Короче, концепция ОЧЕНЬ сырая. Собери себе LFS, год-два над ним помедитируй, и тогда, может быть, к тебе снизойдёт озарение.

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

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

Возможность ставить пакеты в home?

Причём не в /home/user/.local, заметь. Этот проект обречён на провал, я готов на это поставить свой процессор!

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

/opt немного специфичная по своему строению директория(пакеты там аля шиндовс). Тут или создавать новую директорию или использовать /home

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

uflpm ()

установки пакетов в /home

ненужно

графические инсталяторы ака msi.

ненужно

но так же будут доступны пакеты (в виде архивов), в которых будут эти самые инструкции, а так же файлы самой программы.

шо? не распарсил. это ты хочешь rpm/deb переизобрести?

Пишу на python,

на пистоне ужо портажик есть.

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

Вы считаете, что плохо дать возможность пользователю установить пакеты

да

пакеты только для себя (к примеру порно игры)

ну так для таких целей всякие проприетарщики делают .run пакеты.

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

проблему можно решить и без добавления =

проблему

Не вижу в этом проблемы.

/opt немного специфичная по своему строению директория(пакеты там аля шиндовс).

пакеты там аля шиндовс

Ну так концепция, изложенная выше, к этому и ведёт.

использовать /home

Если только в пределах нужд одного пользователя.

создавать новую директорию

Потом придумать к ней новый стандарт... Снова зоопарк. Не нужно.

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

Когда увижу реализацию и количество пользователей бельше, чем полтора, тогда и обсудим.

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

что создание локального репозитория со своими ебилдами для установки пакета это не костыль?

нет, всё логично.

Не проще сгенерировать и установить пакет (генератор пакетов

в генте это «генератор пакетов» называется «разработчик». И генерит он их написанием ебилдов.

генератор пакетов тоже будет, удобность для разработчиков, как ни как

назови мне что может быть удобней чем один раз настроить юзы и переменные окружения? Я, блин, по памяти тебе и не скажу что я там понастраивал пару лет назад, ибо раз настроил — работает. А «пакеты генерятся» портажам, берущим настройки из /etc/portage

а получение с пакетом одного лишнего файлика по типу .ebuild внутри (в архиве пакета), не думаю, что это большая проблема.

моя твоя не понимать.

Кстати, еще один костыль генты, обязательное наличие = в начале названия пакета, если хочешь указать его версию

какой нахрен костыль? всё логично до невозможности.

но можно приравнивать

но зачем? тебе на клавишу «=» нажать тяжело?

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

Есть лицензии с которыми нужно соглашаться

echo "proprietarnyj/velosiped SuperPuperZakrytajaLicenzija" >> /etc/portage/package.license

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

Генерация только бинарных пакетов, но будет и генерация псевдо ебилдов, которые позволять собирать из сорцей. Генте никто не запрещает быть бинарной,

кастани пинкибайта, он тебе расскажет как весело поддреживать такое чудо.

:2

ты походу с гентой ваще хреного знаком.
aaa/bbb:X <- так указывается СЛОТ

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

А вы видимо читать не умеете. Я навел пример, это раз. И о слотах в своем пакетном менеджере я еще не думал.

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

Я навел пример, это раз.

во первых: хреновый пример
во вторых: этож надо, придумать проблему на пустом месте, чтоб с гордостью её приодалеть.

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

Благодарю за то, что ты нагуглил за меня эту пикчу. Теперь нужно, чтобы ТС понял её смысл.

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

Если честно не понял в чём киллер-фича.

Пиар, реклама, сотни нефти...

Возможность ставить пакеты в home?

Возможность ставить в куда угодно есть и у portage. Так что этот пункт газификация малых водных угодий.

init_6 ★★★★★ ()

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

Установку в /home частично одобряю, но может лучше сделать настраиваемые полномочия для пользователя, когда он смог бы ставить софт на всю систему, не переходя на рут?

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

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

Задача, в общем, не проста и достойна конкурса «Интеллектуалы Урала»

anonymous ()

Реакция типичных лоровцев забавна

Синдром утёнка во все поля. А мне идея кажется нормальной

anonymous ()

Мой концепт (в виде несвязного рассказа)

Сделать систему сборки, которая работает от обычного пользователя. Она скачивает сырцы и собирает их, делая бинарный пакет. Далее она подключается к пакетному менеджеру-серверу, который работает как демон от рута. Если был запрос на установку этого бинарного пакета, пакетный менеджер проверяет, есть ли у пользователя права на установку. Если да - устанавливаем. Бинарный пакет тоже сохраняем, если другой пользователь запросит установку этого софта в свой хомяк, а из системы его вычистят. Можно сделать общий софт для группы пользователей. Но всё это (бинари с правами на запись) чревато вируснёй. Тут только chflags (2) из BSD спас бы.

anonymous ()

ТС путает /home и ~, это печально.

olibjerd ★★★★★ ()

Очередная задумка, обреченная не вылезти даже из пеленок. Если ты и загорелся идеей, то хватит этого запала в лучшем случае на полгода. А планы — наполеоновские, даже если изначально будет правильно спланирована архитектура, а ТС — гуру питона, то задумок хватит на пару лет вперед. Результат будет плачевный: через полгода проект будет заброшен, потому что в течение первого полугода ТС будет наблюдать чудовищную разницу между тем, что хочется, и тем, что реально будет сделано, а потом поймет тщетность своих попыток.

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