LINUX.ORG.RU

Pipewire - неизбежная... победа!

 , ,


5

2

Есть snap, flatpak, wayland. Вроде хорошее дело, но - они добавляют изоляцию между приложениями, и такие штуки как jack, pulseaudio уже не могут работать как раньше. Надо что-то решать. И тут появляется надежда - pipewire. Но надежда ложная, потому что это катастрофа!

Нет, надежда все-таки есть.

Вот мои претензии (которые в итоге разрешились):

1. Обязательный ресемплинг. Как известно, pulseaudio поддерживало две частоты дискретизации микшера - основную и альтернативную. Это позволяло, в случае воспроизведения например только музыки со spotify переключать микшер на частоту дискретизации потока и УБРАТЬ ресемплинг! Если воспроизводит только одно приложение, ресемплинга быть НЕ ДОЛЖНО! Потому что он не нужен. Pipewire не позволяет, и похоже что реализовать это в той архитектуре, которую заложили, будет весьма непросто. На практике он всегда делает ресемплинг и всегда портит звук.

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

Переключение РАБОТАЕТ уже сейчас, на версии из Git! На релизе 0.3.33 у меня не работает.

КАК СДЕЛАТЬ:

В pipewire.conf пишем:

default.clock.rate          = 48000
default.clock.allowed-rates = [ 44100, 48000 ]

Можно перечислить в allowed-rates до 16 значений. Все!

ТЕПЕРЬ - если воспроизведения не было, и запустить на воспроизведение ОДНО приложение, pipewrire будет переводить себя и звуковую карту на частоту дискретизации этого приложения, и ресемплинга НЕ БУДЕТ.

2. При работе с jack клиентами может меняться размер буфера. Занавес! То есть я играю на гитаре, и тут мне меняют размер буфера? А ничего что это приведет к слышимому и чувствуемому изменению задержки звука? Как играть??? Так НЕЛЬЗЯ ДЕЛАТЬ, а надо делать ровно наоборот. Я уже молчу про то, что изменение на лету размера буфера может просто крашануть jack приложение, которое такого бреда не ожидало!

3. Для того, чтобы вообще хоть как-то задать размер буфера для jack клиентов, надо запускать приложение с переменной окружения PIPEWIRE_LATENCY. То есть мне теперь все приложения из консоли стартовать? Или все desktop файлы править? С настоящим jack это решается элементарно - программой управления типа qjackctl. Там просто выбирается какой буфер, и все приложения используют его. Должно быть ВОТ ТАК.

Решение:

pw-metadata -n settings 0 clock.force-quantum <size>

устанавливает фиксированный размер буфера.

Или в jack.conf:

node.lock-quantum = true

4. Нельзя нормальным образом поменять частоту дискретизации при работе с jack клиентом. Используется та, на которую настроен pipewire своим конфигом. С нормальным jack частота просто выбирается в qjackctl. А с pipewire что, мне править конфиг и перезапускать его, или как?

Решение, можно менять на лету:

pw-metadata -n settings 0 clock.force-rate <samplerate>

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

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

★★★★

Последнее исправление: James_Holden (всего исправлений: 4)
Ответ на: комментарий от anonymous

настолько довольны, что поголовно пользуются homebrew))

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

Тут встаёт вопрос про дистр, целиком построенный на флатпаке. Может его и сделать основным ПМ?

Мои претензии к флатпаку, в основном, это то, что паралельно с основными пакетами стоит практически вся система. Даже дрова для невидии. И стоят дрова НЕСКОЛЬКИХ ВЕРСИЙ! Может если системными будут только ядро и флатпакозапускалка, тогда наступит единство и счастье?

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

Вообще надо попробовать. Какой там дистр был цельнофлатпаковый? Сильверблю? И ещё какой-то сторонний. Займусь на выходных очередным бессмысленным занятием.

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

Начну с конца )))

Какой там дистр был цельнофлатпаковый? Сильверблю?

Цельнофлатпаковых пока вообще нет. Сильверблю - это такой же франкенштейн. Почти обычная федора, только там rpm-ostree в качестве основного ПМ. То есть она качает пакеты rpm от федоры, распаковывает и засовывает в ostree репозиторий (свой отдельный, не тот в котором флатпак пакеты). Потом из него разворачивает систему.

Флатпак там сбоку припека как и везде. Сам такой подход с rpm-ostree мне не нравится. К тому же процесс обновления системы весьма тормозит, из-за этих лишних телодвижений.

У меня идея какая - собрать базовую систему на основе рантайма flathub и засунуть этот образ в ostree репозиторий флатпака. Этот рантайм - практически готовое chroot окружение. Туда надо добавить некоторые системные компоненты, для управления пользователями, systemd и ядро. И все, можно грузиться прямо во флатпак.

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

Но тут основная проблема - такой образ системы не изменяемый. Как его подгонять под конкретные условия и машины?

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

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

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

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

А если запаковывать не все, как это и делается - легко нарвешся на несовместимость версии libc, например.

Билд нужно делать на минимально совместимой версии, которая достаточна для работы базового функционала. Совместимость с libc лет на 10-12 назад можно тянуть спокойно. Вот со всяким десктопным хламом дела похуже, да. Если ты нормальный проприетарщик, то просто пишешь на Qt, да бандлишь. Все так делают :D

Очевидно, что у мака есть такая вещь как базовая система. Что и позволяет делать бандлы. В линуксе ее нет. Ты будешь всю систему в каждый пакет бандлить? Или как ты будешь решать, что бандлить а что нет?

Ну, строго говоря есть LSB..

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

Pipewire - неизбежная… победа!

Человек внезапно всё понял. А сколько паники было.

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

Я уже устал каждому объяснять.

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

И ждал этих изменений я года два. Потом не выдержал и создал тред.

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

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

Фанатики всегда бросаются между крайностей.

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

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

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

Если ты нормальный проприетарщик, то просто пишешь на Qt, да бандлишь.

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

И опять у меня вопрос - а ради чего нормальный проприетарщик должен писать именно на Qt? Это опять какая-то старая песня «мы всю жизнь страдали, работали инженерами за минималку, занимали на еду и ты должен». А изменить что-то к лучшему никак?

Ну, строго говоря есть LSB..

Уже десять лет назад оно было только на бумаге. Насколько я понимаю, последняя версия LSB - это 5, от 2015 года. В которой - Qt 4. Ну вот серьезно? Разрабатывать на Qt4 в 2021 году?

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

А он уже вышел? Значит завезли. Просто я релиз проспал.

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

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

Я, кстати, когда создавал свою тему про пайпварю узнал о планах пайпвари наполовину из тудух в комментариях в исходниках. И хоть я Жамесу Холдэ́ну и писал некоторые положительные планы, видимо это проскользнуло мимо него и он застрял в нерешаемых проблемах. И если бы неравнодушный лоровец не задал вопросы непосредственно авторам, мы бы так и не узнали о том, что, мало того, что работы в эту сторону ведутся, так ещё и порция уже влита в мастер. Хотя, он мог и сам у них сначала спросить, а потом бучу поднимать, да.

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

Есть такое понятие - разведка боем. Вот это оно.

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

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

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

Ну да ладно, теперь по гроб жизни будешь виноват во всех грехах :) тебя всё равно тапками закидают, расслабься и получай удовольствие :))))

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

Литературного Холдена тоже не жаловали за вздыбливание информационного поля и последующее прозрение что все не так )))

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

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

Это ограничения ради совместимости ) <пример>Если тебе нужен какой-нибудь memfd_create, то тебе нужно так-же и совместимое ядро. Вот и твои минимальные ограничения. Если же он тебе не нужен, билдайся на старом glibc, от этого тебе ни жарко ни холодно</пример>.

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

Ну, вообще то нет. В Qt есть и версионирование символов, и версионирование либ, так что адекватным людям можно привязываться к мажорным версиям Qt: 6/5/4. Другое дело, опять же, использовать мнимальный и достаточный API/ABI. Но, всем как обычно насрать.

И опять у меня вопрос - а ради чего нормальный проприетарщик должен писать именно на Qt?

Ну, ему все равно выбирать не из чего. Qt или электрон.

Насколько я понимаю, последняя версия LSB - это 5, от 2015 года. В которой - Qt 4. Ну вот серьезно? Разрабатывать на Qt4 в 2021 году?

Ну вот и не жалуйтесь ))

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

Ну вот и не жалуйтесь ))

Так о чем и речь. Все вышеописанное - про совместимость, версии Qt т. д. является проблемой по причине отсутствия стандартной базы. Если бы был стандарт, как LSB, который предоставляет рантайм с Qt, GTK и так далее, то можно было бы бандлить только чисто прикладные либы, и проблема бы решилась на этом.

Но! Никто не смог договориться о стандарте. Клали на него болт. Поэтому такой подход не прокатил. А как сделать и нашим и вашим, чтобы и стандарт как бы был, и он не был жестким, заставляющим всех иметь одни и те же версии либ и точка? Очень просто - сделать быстрое (раз в полгода) версионирование стандарта, ветки стандарта (KDE, GNOME) и дать возможность ставить разу несколько соответствующих стандарту рантаймов в систему. Столько, сколько нужно.

То есть мы получаем Flathub + Flatpak. Flathub - это не что иное как современный LSB. Только он больше не вынуждает всех принимать ровно одни версии либ и сидеть на этом старье годами.

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

Очень просто - сделать быстрое (раз в полгода) версионирование стандарта

Гыгы, одним выстрелом ты убиваешь Дебьян и всех олдфагов. Тот же РетХат. Им всем легче накрутить вот такую вот кашу из аппимеджа засунутого в снап, запихнутого во флатпак и запущеного в докере на виртуалке в kvm. Балом рулют «деплоеры», от этого страдают все

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

Я после этого твоего поста внезапно понял, почему шапка не вольет систему во флатпак, как каноникал со снапом. А делают сбоку припеку. Чтобы на RHEL натягивалось. Для них ведь главное - RHEL, остальное для теста.

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

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

Стандарт то есть, да всем на него насрать. И вот это - проблема.

Очень просто - сделать быстрое (раз в полгода) версионирование стандарта, ветки стандарта (KDE, GNOME) и дать возможность ставить разу несколько соответствующих стандарту рантаймов в систему. Столько, сколько нужно.

И будет все ровно тоже самое. Т.к. будут делать под последний, на старых ничего не работает, нужно 100500 одновременно. Наша песня хороша, начинай сначала ))

ровно одни версии либ и сидеть на этом старье годами

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

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

ТОЛЬКО ЩАС???? Ёлки, РедХат - это классический бизнес, но построенный на опенсорсе. Они одни из первых придумали, что опенсорс надо подмять под себя, тогда можно будет рулить рынком. Им нужен продающийся мир, а не свободный, или стабильный, или что вы там себе думаете. В этом самая большая трагедия. При некоторых, всё же, плюсах.

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

это слишком сложно для современных говнокодеров

Деньги где?

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

Я после этого твоего поста внезапно понял, почему шапка не вольет систему во флатпак, как каноникал со снапом. А делают сбоку припеку. Чтобы на RHEL натягивалось.

Что?

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

Flatpak - это тестовый полигон для OSTree. Как оно на десктопы залезет, их…

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

Стандарт то есть, да всем на него насрать

А почему мне не должно быть насрать на Qt4? Я не вижу ни одной причины.

И будет все ровно тоже самое

Нет конечно. То что сделано под старый - будет работать на старом рантайме. Никто не заставляет его удалять. Можно сейчас с флатхаба поставить старый GIMP и скачается рантайм трехлетней давности и все будет работать.

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

А если у меня наименьшая рабочая версия - последняя (а так и есть)?

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

Flatpak - это тестовый полигон для OSTree. Как оно на десктопы залезет, их

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

Хотя доля правды тут есть.

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

Им нужен продающийся мир, а не свободный

Именно поэтому они все свои изменения, которые хотят, проталкивают через апстрим, а не просто тупо патчат у себя как каноникал?

Как-то не клеится.

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

Это твое частное мнение, оно не может быть враньем по определению. Оно может быть заблуждением. Или не быть.

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

Ну это бред. Вот скажешь что для RHEL домашний десктоп приоритет.

Это явная не правда. Так и тут. И это очевидно. Хотя тебе что по лбу - своя альтернативная реальность.

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

И все же, ты в каждом треде с флатпаком воюешь. Чем он хуже снапа?

Тут многие «воюют» c флатпаком. Если есть какой-то оголтелый фантик какой-то технологии (как вон этот «кто не использует flatpak, тот не умный, утёнок и всё такое»), то будет создаваться такое впечатление. Это очевидно.

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

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

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

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

Не хочу разводить кашу, опять меня шизиком назовут. Скажу лишь то, что они всю жизнь дружат с кем угодно, кроме других дистростроителей. Найди на опеннете открытое письмо Космонавта открытому сообществу тех, далёких лет, когда pulseaudio только появлялся, когда третьегнома только начали разрабатывать, когда upstart начали заваливать. Как он горевал по поводу того, что проекты «других дистростроителей» не идут на диалог, создают в сообществе травлю и пр. У людей короткая память и легковнушаемость, Редхаты ловко этим воспользовались.

R_He_Po6oT ★★★★★
()

Прочитав весь этот тред пересел с пшшаудио на трубоводы.

На моей 4ой пишечке pulseaudio ела 7-10% процессора по htop'у, a pipewire - 2-5% при одинаковом воспроизведении звука (hhtp-стрим с mpd с другой малинки через mpg123 и в блютус колонки). Все подцепилось без проблем и нареканий. Это действительно победа.

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

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

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

В то же время - создание мира в пику вейланду, снапа в пику флатпаку.

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

Вернемся вообще в 2006-2009 годы. Есть Мандрива, весьма интересный, юзер френдли неплохой дистрибутив, который по GUI утилитам убунту догнала году к 2016, если не 2018. Его полная версия продается за деньги. И при этом космонавт бесплатно по всему миру рассылает на дисках убунту, которая во всем проигрывает Мандриве. К 2010 году мандрива рушится. Конечно там были и другие факторы, но все же, бороться на рынке против миллиардера рассылающего все бесплатно по всему миру не реально.

И чего он этим добился? Диалог - где он? Какой был диалог перед рассылкой бесплатных дисков?

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

А почему мне не должно быть насрать на Qt4? Я не вижу ни одной причины.

В мире где не всем насрать на стандарты и есть базовая система это была бы причина бандлить или не бандлить Qt ))

Нет конечно Никто не заставляет его удалять.

Какие-то особые люди удаляют из дистрибутивов старые версии всяких openssl, libpng, libcurl и прочего. Вероятно сейчас их кто-то заставляет.

А если у меня наименьшая рабочая версия - последняя (а так и есть)?

Значит совместим только с распоследними. Что тут поделаешь.

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

Я воюю не за флатпак, а против репов.

Дак флатпак это те же самые репы, только вид с боку. Чем флетпак от реп отличается?

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

Дак флатпак это те же самые репы, только вид с боку. Чем флетпак от реп отличается?

Тем, что два «Hello World» весят 1 GB …

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

Значит совместим только с распоследними. Что тут поделаешь.

Недостаточно чтобы была базовая система. Еще очень необходимо, чтобы она была сделана не по-идиотски. И вот тут у LSB большие проблемы, отчего этот «стандарт» и не взлетел.

Какие-то особые люди удаляют из дистрибутивов старые версии всяких openssl, libpng, libcurl и прочего. Вероятно сейчас их кто-то заставляет.

Заставляют не люди, а пакетный менеджер apt при обновлении на новую версию системы.

Значит совместим только с распоследними. Что тут поделаешь.

Ну как что поделаешь. Можно напрячь мозги, и тогда все заработает даже на нынешнем Debian oldstable. При том что все либы - последние. И libc новее чем в oldstable. Фокус?

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

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

Заставляют не люди, а пакетный менеджер apt при обновлении на новую версию системы.

Да как бы никто не запрещает (п)оставить libcurl-2 libcurl-3 libpng-14 libpng-15 libboost-xyz-9000 итп.

и тогда все заработает даже на нынешнем Debian oldstable При том что все либы - последние.

Еще на oldstable можно поставить vmware, и запустить там винду, а в ней офис. И что это должно значить? )

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

Я говорю о классических репах. Не о Nix, например. Это же тоже репы, но они работают совсем иначе.

Классические репы - это набор архивов, которые при установке распаковываются прямо в корень системы. Модифицируя тем самым системы напрямую. Это полбеды, потому что эту модификацию можно отменить, удалив все содержимое пакета-архива обратно.

Вторая половина беды - при установке выполняются скрипты, которые бесконтрольно и необратимо модифицируют, опять же, корень системы. И это вообще нельзя отменить. Поэтому, например, крайне проблематично даунгрейдить Debian Testing до Debian Stable. Даже не смотря на то что apt pinning позволяет настроить приоритеты так, что apt dist-upgrade попытается все откатить назад. Но это обречено на провал.

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

Это тупик, из которого выйти можно только поменяв саму основу классических репов - распаковку в корень. Nix не распаковывает в корень ничего и не имеет этих проблем. Flatpak, Snap - то же самое. В этом их кардинальное отличие номер один.

Но это даже не главное.

С точки зрения пользователя десктопа существует ОС и ее приложения. И в система должна быть ориентирована именно на установку/удаление/обновление приложений, и обновление ОС. Отделные сущности - ОС и ее приложения.

Пользователь не должен выбирать и ставить библиотеки. Знать о библиотеках. Читать вот эти километровые списки притянутых по зависимостям библиотек. Это идиотизм. Пользователя интересуют приложения. Поэтому в идеале должно быть так: список всех доступных приложений, напротив каждого птичка. Ставим птичку - ставится приложение. Удаляем птичку - удаляется приложение. Начисто.

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

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

С классическими репами описанный выше механизм не реализуется. …

Хороший пост …

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

Весь смысл реп и классического дистрибутива в том, что есть отдельная сущность (дистрибьютор), который за пользователя решает /все/ проблемы. Т.е. дистрибутив предоставляет то что предоставляет.

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

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

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

Распаковка архива «прямо в корень системы» не является проблемой сама по себе. Файловая система - просто пространство имен. Как его использовать - проблемы разработчика и дистрибьютора. Nix, flatpak, snap итп тоже распаковывают свое барахло «прямо в корень системы», только их способ взаимодействия с распакованным несколько иной.

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

Да как бы никто не запрещает (п)оставить libcurl-2 libcurl-3 libpng-14 libpng-15 libboost-xyz-9000 итп.

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

Еще на oldstable можно поставить vmware, и запустить там винду, а в ней офис. И что это должно значить? )

То что нужно ехать, а не шашечки. Когда мне надо работать с docx я делаю именно так. Итог - выполнена работа. Попранные чувства прекрасного меня при этом не интересуют.

Так же и в остальном. Надо делать не как «правильно», а как правильно - то есть как удобнее работать.

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

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

Билд выполняется или на билд тачке с заданным энвайрментом или тулчейном с sysroot. Причем тут хост система вообще?

Попранные чувства прекрасного меня при этом не интересуют.

rpath, бандлинг всего в приложение – и всё (что теоретически могло бы работать) работает )

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

который за пользователя решает /все/ проблемы

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

Т.е. дистрибутив предоставляет то что предоставляет.

Этого недостаточно. Он должен предоставлять то, что нужно пользователю.

Ну и вот примерно так и есть )

Не совсем так. Точнее совсем не так. Сейчас у нас на одно приложение 20 птичек. Это просто идиотство. Это невозможно объяснить людям. Должно быть так - одно приложение - одна птичка.

То что у вас нет 50 версий фаерфокса - проблема дистрибьютора, который этого не предусмотрел.

Если бы все было вот так просто, за 17 лет использования линукса как основной десктопной системы я навреное бы дождался того счастливого дня, когда все предусмотрели? Или надо еще 20 лет подождать?

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

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