LINUX.ORG.RU
ФорумTalks

Поттеринг: «Давайте заменим пакетный менеджер подтомами btrfs»

 ,


1

6

Сабж

The scheme we propose is built around the variety of concepts of btrfs and Linux file system name-spacing. btrfs at this point already has a large number of features that fit neatly in our concept, and the maintainers are busy working on a couple of others we want to eventually make use of.

[…]

app:<vendorid>:<runtime>:<architecture>:<version> — This encapsulates an application bundle. It contains a tree that at runtime is mounted to /opt/<vendorid>, and contains all the application's resources. The <vendorid> could be a string like org.libreoffice.LibreOffice, the <runtime> refers to one the vendor id of one specific runtime the application is built for, for example org.gnome.GNOME3_20:3.20.1. The <architecture> and <version> refer to the architecture the application is built for, and of course its version. Example: app:org.libreoffice.LibreOffice:GNOME3_20:x86_64:133

[…]

  • We want a unified scheme, how we can install and update OS images, user apps, runtimes and frameworks.
  • We want a unified scheme how you can relatively freely mix OS images, apps, runtimes and frameworks on the same system.
  • We want a fully trusted system, where cryptographic verification of all executed code can be done, all the way to the firmware, as standard feature of the system.
  • We want to allow app vendors to write their programs against very specific frameworks, under the knowledge that they will end up being executed with the exact same set of libraries chosen.
  • We want to allow parallel installation of multiple OSes and versions of them, multiple runtimes in multiple versions, as well as multiple frameworks in multiple versions. And of course, multiple apps in multiple versions.
  • We want everything double buffered (or actually n-fold buffered), to ensure we can reliably update/rollback versions, in particular to safely do automatic updates.
  • We want a system where updating a runtime, OS, framework, or OS container is as simple as adding in a new snapshot and restarting the runtime/OS/framework/OS container.
  • We want a system where we can easily instantiate a number of OS instances from a single vendor tree, with zero difference for doing this on order to be able to boot it on bare metal/VM or as a container.
  • We want to enable Linux to have an open scheme that people can use to build app markets and similar schemes, not restricted to a specific vendor.

    […]

The future is going to be awesome!

★★★★★

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

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

Еще один поттерингохейтер порвался

Будешь грубить тем, кто больше знает - так и останешься поцерофагом. Но у настоящего поцеринга за спиной Редхат, а ты хер простой.

http://man.cat-v.org/plan_9/1/bind

bind, mount, unmount - change name space

И? Может, ты знаешь принципиальное отличие bind от mount --bind? Поделись.

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

В общем вот так

$ cat /home/user/test2/bin/php | grep /home/user/test/lib
Двоичный файл (стандартный ввод) совпадает

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

Типичный вендовый десктоп имеет в себе 5-7 разных дотнетов и примерно столько же vc++ redist

Вполне нормальная ситуация

Несите факелы, вилы и лопаты!

Deleted
()

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

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

Будешь грубить тем, кто больше знает - так и останешься поцерофагом

Мне плевать на чувства верующих, и меня не волнует ширина их познаний о священном писании, LSB/FHS, ну или во что там еще люди верят.

И? Может, ты знаешь принципиальное отличие bind от mount --bind? Поделись.

В линаксе mount --bind всегда скрывает содержимое директории, в которую монтируется другая директория. Plan 9 умеет прозрачно объединять содержимое, показывая файлы из обеих директорий, что позволяет создать программе иллюзию того, что ее поставили в корень, хотя на самом деле она находится в каком-нибудь /pkgs/<program_name>/build/image/

shatsky ★★
()

Чем он так упарывается то?

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

для обратной совместимости придется симлинкнуть ВСЕ ресурсы из /opt в /usr. в результате имеем в 2 раза больше файлов.

Для обратной совместимости с чем?

Но для удобного управления PATH придётся симлинкнуть все приложения(без левых бинарей) в /usr/bin или аналог.

в результате имеем в 2 раза больше файлов.

Только они не «засирают» систему, а разделены по разным дирам и разным ФС. И библиотеки тоже не засирают ФС.

Засирают ФС только симлинки, помещающиеся в иноды и только в одной дире, и их даст бог 30% от общего кол-ва файлов, а то и меньше. Остальное всё чётко структурировано.

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

На выходе Поттеринг решит проблему, от которой у тебя разрывало пукан(засранная ФС), а ты, глупенький, не понимаешь.

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

Это я к тому, что если не меняется инструментарий, а задача усложняется, то «быстро и эффективно» скорее всего не получится :) Вот я к чему.

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

В линаксе mount --bind всегда скрывает содержимое директории, в которую монтируется другая директория. Plan 9 умеет прозрачно объединять содержимое

Но вот засада - Linux != Plan9 :) и превратить первое во второе невозможно :)

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

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

Давно делал ls -ahl /usr/bin ? А ls -ahl /usr/lib64/ ? Много ты в них держишь под контролем? А тут тебе, между прочим, проверку контрольных сумм разделов и бинарей(если я правильно понял) предлагают. Да и контролировать систему, разбитую на части явно проще, чем большую свалку.

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

Системд этому не препятствует, проблема в kmod. А вообще с системд возможна загрузка с /usr хоть на nfs без проблем. Просто для этого нужен initrd с dbus на борту(лучше сразу с systemd).

Если эту инновационную каку внедрят, станет проблематично использовать что-то кроме btrfs для системы

Сомневаюсь, что так будет, ну да подождём рабочей реализации. С завязкой только на бтрфс оно даже в федору не пройдёт.

Ivan_qrt ★★★★★
()

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

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

Дистрибутив называется Fedora. Ну а следом подтянутся RHEL/CentOS и всё остальное петушьё.

А нормальные люди использовать это говно не будут

Твоя теория не сработала уже трижды: avahi, pulse, systemd.

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

старым софтом

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

Максимум, что может понадобиться - опакетить.

шелл-скриптами

Всё что не `which exec` переписать. Ибо не портабельно. Ну и PATH так или иначе будет рабочим, так что в скриптах ничего не сломается.

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

Тут идёт разделение на «софт» и «фреймворки».

А то и есть винда.

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

независимы. Там вообще очень весело сделано. Там файлоподобный IPC, а «реальные» файлы на hdd это лишь маленький частный случай.

cvs-255 ★★★★★
()
Ответ на: комментарий от AX

А зачем мне pacman? Мне dpkg вполне устраивает. А генеральную линию партии засунь Поттерингу в задницу.

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

А если есть 2 файла с одинаковым именем, тогда что?

Самый очевидный вариант - показывать файл «верхней» ФС, скрывая файл «нижней». Как бы имитируем копирование с замещением.

shatsky ★★
()

Давайте заменим пакетный менеджер подтомами btrfs

А кто-нибудь уже придумал пакетный менеджер с интеграцией git/работающий через git?

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

openSUSE? Где про это посмотреть если второе.

В 13.2 всё из коробки, т.е. подождать или посмотреть на текущие образы Factory.

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

Если оно прикончит помойку из форматов пакетов и их менеджеров, то будет просто отлично

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

drull ★☆☆☆
()
Ответ на: комментарий от cvs-255

Я не хочу только btrfs. Я хочу иметь возможность использовать любую ФС

Для такой фигни в любом случае понадобятся снапшоты. Нормальные снапшоты есть только в btrfs и zfs. Последняя лицензионно убога, хотя может оракл и прикрутит. Можно попробовать lvm, но его снапшоты обычно не очень жалуют.

В принципе, вроде как, эта штука может спокойно сочетаться с обычным дистром с обычным пакетным менеджером и обычной ФС. Просто придётся хранить на бтрфс дополнительный корень и нужные системные либы. Все равно приложения запускаются в контейнерах. А сама система будет пускаться как обычно, с ext4, все дела.

На вскидку, в такой схеме все ок, кроме дублирования «core os» и нужных библиотек на бтрфс и на файлухе базовой системы. ИМХО нестрашно.

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

Ну не знаю... Я JFS использую, все прекрасно.

Meyer ★★★★★
()
Ответ на: комментарий от cvs-255

Отлично, теперь придется следить за тем, в каком порядке записи в /etc/fstab идут

Ты часто по ошибке копируешь предыдущий бэкап проекта поверх текущей версии, когда хочешь забэкапить текущую?

Алсо, fstab тут вообще не при чем.

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

Я имею 2 ФС, в обоих в корне есть файл foo. И я, как Буратино, монтирую их в одну точку. И хочу прочитать файл foo. По твоим словам, я прочту тот, который в ФС, которая примонтирована второй.

А так как ФС монтируются на стадии загрузки, исходя из фала fstab, мне придется следить за тем, в каком порядке перечислены точки в этом файле.

cvs-255 ★★★★★
()
Ответ на: комментарий от drull

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

ptarh ★★★★★
()

да убейте же его наконец!!!!

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

mkfs.btrfs /dev/sda

А грузиться с отдельного физического диска?

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

Докинем питоны, гытыка, кути, и на выходе получим невообразимый трэш.

На выходе получим лишних 500 Мб на диске и полное отсутствие конфликтов версий библиотек. А не как сейчас, одно приложение хочет одну версию либы, другое другую. А стоять они должны вместе. А библиотеки конфликтуют и apt-get матюгается в консоль. Отличный секс. Зато 500 Мб сэкономили. Да.

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

Нет, он убеждает, просто обычными похвалами тем, кто поставил таки системдэ

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

а если на эту фс копируем, куда оно физически запишется?

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

А библиотеки конфликтуют и apt-get матюгается в консоль.

Почему я такого никогда не видел?

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

Для такой фигни в любом случае понадобятся снапшоты.

Почему нельзя просто откатить пакет до старой версии?

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

Почему нельзя просто откатить пакет до старой версии?

Можно.

Ivan_qrt ★★★★★
()

А почему именно бронетранспортёрФС? Идея отлична (как TCZ в TinyCore), но зачем привязка к одной фс?

border-radius
()
Ответ на: комментарий от goingUp

Напомни мне, как сделать атомарный апдейт/роллбек пакета. Или ты хочешь выбирать между «пронесёт» (как в линуксах сейчас) и «Компьютер будет перезагружен для обновления в течение двух дней» (как в винде)?

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

Ну и как снепшоты на бинарные файлы помогут сделать атомарный апдейт какого-нибудь mysql, если в апдейт входит обновление системной таблицы с таймзонами? Часто в пакеты ложат разные скрипты с перезапуском сервисов и всем таким, просто взять и откатить «снапшот подтома» нельзя.

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