LINUX.ORG.RU

Несколько пакетных менеджеров


0

2

Как известно, опенсорсные программисты исповедуют разные религии:
кто-то обожает .deb-пакеты
кто-то любит .rpm
кто-то предпочитает nuget
некоторые вообще используют .ebuild-ы

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

Идея такая:
что если сделать на диске несколько разных папок, в которые установить разные пакетные менеджеры.
я имею в виду без всяких там chroot
потом есть же gui-оболочки, которые могут управлять несколькими пакетными менеджерами (сейчас по-очереди, но можно, наверное, сделать, чтобы одновременно?)

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

Неважно, что на диске софт будет продублирован десяток раз, дисковое пространство в наше время дешевое.

Ну и соотсветственно, выпустить дистрибутив, который понимает все виды пакетных менеджеров (Назвать fatux - от слова «толстый линукс»)

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

Это можно.

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

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

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

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

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

Аффтар нуб и опозорился.

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

Зачем выпускать такой дистрибутив, если есть исходные коды программ

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

собрать пакет того формата, который используется в дистрибутиве

это слишком сложно. Если бы это было просто, то все пакеты уже были бы во всех репозиториях

У вас будет каша из библиотек и программ

почему? Они же на диске не будут перемешиваться - каждый пакетный менеджер будет в своей диерктории

Indaril_Shpritz ()

что если сделать на диске несколько разных папок

Мамок себе сделай, виндусятник.

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

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

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

это слишком сложно. Если бы это было просто, то все пакеты уже были бы во всех репозиториях

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

почему? Они же на диске не будут перемешиваться - каждый пакетный менеджер будет в своей диерктории

Смешиваться будут файлы установленных программ. Будет каша из файлов программ разных версий и собранных с разными опциями.

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

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

Да ты что. То-то я спокойно распаковываю рпмки с дебками и запускаю бинарники в генте.

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

Зачем выдираешь фразу из текста ? Дочитать целиком до конца не судьба ?

kostik87

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

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

kostik87 ★★★★★ ()

а разные папки разные пакеты
список доступных пакетов в sqlite
туда же репы с rpm и dev
пилим обертку на python над dpkg/rpm
качаем пакет, распаковываем в папку
туда же линкуем нужные либы + glibc

вот сейчас как раз реализирую эту идею :)
только нудно очень
мой дистр называется truX
ах, да - тут awesome/fluxbox + нескушные обои

ubuntuawp ★★ ()

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

~ $ eix -s alien
* app-arch/alien
     Available versions:  8.88 {+bzip2}
     Homepage:            http://kitenet.net/programs/alien
     Description:         Converts between the rpm, dpkg, stampede slp, and slackware tgz file formats
 man alien

EXAMPLES
Here are some examples of the use of alien:

alien --to-deb package.rpm
Convert the package.rpm into a package.deb
alien --to-rpm package.deb
Convert the package.deb into a package.rpm
alien -i package.rpm
Convert the package.rpm into a package.deb (converting to a .deb package is default, so you need not specify --to-deb), and install the generated package.
alien --to-deb --to-rpm --to-tgz --to-slp foo.deb bar.rpm baz.tgz
Creates 9 new packages. When it is done, foo bar and baz are available in all 4 package formats.
anonymous ()
Ответ на: комментарий от kostik87

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

ну хорошо, хорошо, я уже согласился,
каждому пакетному менеджеру по chroot-у

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

Если бы это было просто, то все пакеты уже были бы во всех репозиториях

их там нет по политическим причинам, а не из-за сложности сборки.

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

почему бы вообще каждую программу не паковать в отдельный пакет со всеми её зависимостями? и запускать в отдельном chroot.

Пользователю надо десятков пять программ от силы. Ну будет каждая занимать по 20G, всего выйдет 20*50 = 1 TB, ну и что?

Indaril_Shpritz ()

у меня есть другое предложение:

1. сделать чтобы ubuntu software store принимал app bundles, которые содержат в себе все нужные зависимости.

2. предоставить инструментарий чтобы делать [1] было так же просто как в макоси и венде.

3. заставить всех девелоперов собирать бинари своих поделок.

4. принять формат этих app bundles за стандарт.

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

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

гентушникам это расскажите

в генте все точно так же - софт обычно отсутствует в портеже по политическим соображениям.

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

Ну наконец-то! Давно уже здесь никто GoboLinux не изобретал :)

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

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

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

почему бы вообще каждую программу не паковать в отдельный пакет со всеми её зависимостями? и запускать в отдельном chroot.

А-ля C:\Program Files\bla-bla-bla? Зачем из линукса делать винду? И потом, если уж этого очень хочется, то static lib в помощь. Линукс универсален.

Пользователю надо десятков пять программ от силы. Ну будет каждая занимать по 20G, всего выйдет 20*50 = 1 TB, ну и что?

К примеру: mc можно собрать с нижеследующими флагами, то бишь опционалом...

app-misc/mc 
     Available versions:  4.8.7 ~4.8.7-r1 ~4.8.8-r1 ~4.8.8-r2 ~4.8.9 ~4.8.10 [M]**9999 {X +edit gpm mclib nls samba sftp +slang spell test +xdg}

в пакет с mc будем пихать X, samba и т.д. А сколько пакетов зависит от X? И каждой дадим по копии...

Или вот еще.

 * dependency graph for kde-base/dolphin-4.10.5
 `--  kde-base/dolphin-4.10.5  amd64 
 .............
   `--  kde-base/oxygen-icons-4.10.5  (>=kde-base/oxygen-icons-4.10.5) amd64  [aqua=]
[ kde-base/dolphin-4.10.5 stats: packages (40), max depth (1) ]

В пакет с dolphin запихаем еще 40 пакетов, а те тоже пусть тянут свои зависимости... иными словами, на каждый софтинку в kde по полному набору kde,qt,X и т.д. персонально. А оно надо? Все же концепцию юникс разрабатывали люди неглупые, и эта концепция родилась задолго до винды, и живет успешно. Я уже не говорю, про то что линукс живет не только на ПК.

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

В пакет с dolphin запихаем еще 40 пакетов

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

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

Какой-то ламерский бред. Разберись в матчасти для начала.

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

у меня есть другое предложение:
1. Ехал Гитлер через реку
2. видит Гитлер в реке Гитлер
3. сунул Гитлер в Гитлер Гитлер
4. Гитлер Гитлер Гитлер Гитлер

fxd

anonymous ()

Я вот даже не знаю, что хуже: вот такое предложение или предложение придумать новый «единый» стандарт пакетов.

sT331h0rs3 ★★★★★ ()

Ну ты нагородил. Каких пакетов в твоём дистре тебе не хватает?

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

А можно просто перевести всё на portage, чтобы от его тормозов страдали ВСЕ! мухаха.

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