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

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


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

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

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

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

Лiл

anonymous
()

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

Нет, сломать ТСу пальцы.

так и для одного определенного пользователя (текущего

Ок.

anonymous
()

инфраструктуру portage нужно лишь расширить до полноценной работы с deb и rpm, после чего Red Hat и Debian сами станут собирать свои дистры портежом, лол

Alyssa
()

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

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

anonymous
()

ввести возможность установки пакетов в /home{/usr, /etc}, что позволит пользователям устанавливать и настраивать некоторые программы без прав администратора

если что, homebrew (linuxbrew) под линукс уже есть и работает, с огромной базой пакетов.

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

Для чего переизобретать 0install и прочее подобное?

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

Можешь назвать хотя бы один пакет под несвободной лицензией, в которой не было бы слов наподобие «установка данного ПО означает согласие с лицензией»? Я к тому, что раз уж юзер что-то ставит, значит с лицензией он всяко согласен; не был бы согласен — не ставил бы.

Добавлям в /home/.config и в /home/.local папки с именами пользователей

Прочти, пожалуйста, man 7 hier и XDG Base Directory Specification, и не лезь в /home с тем, чему место либо в /opt, либо в /usr/local, либо в /usr/lib/uflpm.

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

Как человек, предпочитающий ставить .msi командой msiexec /i <msiname> /quiet /norestart, не могу не спросить — зачем?

dexpl ★★★★★
()

Дата регистрации: 29.03.2015 1:00:17

nuff said

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

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

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

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

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

Меня очень пугает эта странная новомодная тенденция устанавливать пакеты в место, доступное на запись пользователю. Сейчас steam устанавливает игры так, всякие инди-игры тоже обычно устанавливаются так (хотя я устанавливаю их через ебилды общесистемно, мало кто так делает), также так устанавливаются dropbox (из-за его неотключаемой автообновлялки его невозможно поставить общесистемно, он всё равно обновится в хомяк) и crossover (но его можно поставить общесистемно без проблем). Если юзер однажды скачает очередную игру, а там сюрприз в виде майнилки, которая работает во время работы игры и записывается во все остальные игры, то юзер даже ничего не заподозрит.

Нет, я не против того, чтобы пользователь мог устанавливать какие-то пакеты индивидуально для себя без прав рута. Но это должно обеспечиваться по-другому. Например, в NixOS сделана такая система, что каждая версия каждого пакета устанавливается в отдельный каталог. Можно сделать общесистемного демона, к которому может обращаться любой пользователь без прав рута, а также рут. При запросе на установку пакета он устанавливается в свой отдельный каталог (даже если попросил не рут), например, в /pkg/$NAME/$VERSION. А потом, если пакет должен стоять общесистемно, то в /usr/bin, /usr/lib, /usr/share/icons и т.д. создаются соответствующие симлинки, а если только для пользователя, то в /usr/prefixes/$USER/bin, /usr/prefixes/$USER/lib, /usr/prefixes/$USER/share/icons и т.д. Решается сразу много проблем:

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

Недостаток — я пока не придумал, как можно совместить дедупликацию с изоляцией (чтобы другие пользователи не смогли даже обнаружить тот факт, что кто-то, например, установил firefox для себя; chmod -r /pkg здесь не поможет, если я угадаю путь /pkg/firefox/36.0, то я смогу сделать stat /pkg/firefox/36.0)

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

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

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

Зачем решать несуществующие проблемы вроде

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

? У всех здоровых головой людей ровно 1 (один) полноценный нерутовый юзер на домашней машине, а на серверах все ставится рутом с помощью Chef/Ansible/Puppet/etc.

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

Потому что есть компьютеры в организациях, где целая куча юзверей. Аккаунт мамке, папке, где они не должны пользоваться твоими порно играми. Или я не прав?

uflpm
() автор топика

Автор — школьник, который хочет спрятать свои порноигры от родителей в своём уютном $HOME.

И да, не нужно.

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

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

а вот в таких случаях нужно вообще запрещать запускать бинарники из хомяка.

Deleted
()

Пишу на python

Можешь начинать готовиться к огромному потоку жалоб пользователей на тормоза.

anonymous
()

Шёл бы в GoboLinux контрибьютить.

tensai_cirno ★★★★★
()

Привет, Дениска, как жизнь? Ты этот не имеющий аналогов в мире пакетный менеджер для спебя пишешь, али для гранта?

С наилучшими пожеланиями, Алекс Бабушкин.

cherry-pick
()
Ответ на: комментарий от Gentooshnik

Питон - говно.

Не думаю, но все же мне, например, непонятен self. Читая код с кучей self'ов, не всегда могу понять что он делает. И да, я Python только начал изучать.

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

Нет, портейбл аппс. :) Дык не заставляет же использовать.

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

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

Там всякие AD/LDAP обычно для серверов, на десктопах по 1 пользователю.

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

Почему не должны, ты жадный что ли?

sT331h0rs3 ★★★★★
()

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

Спасибо, не надо. В одной малоизвестной ОС так было раньше, пока не додумались запилить UAC.

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

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

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