Нужен именно CLI (или TUI, если он может отдетачен как tmux), чтобы можно было запускать скриптом в фоне или в tty, и не зависеть от графической сессии.
Конечно же это вызовет проблемы, к чему эти глупости. Иначе зачем ты пытался указывать /usr/local/include компилятору, если у тебя отсутствие этого каталога проблем не вызывает.
В любом случае, для начала нужно обосновать применимость удаления */include.
У Plex свой протокол и свои клиенты, а Subsonic это открытый (ну почти) стандарт стриминга музыки, для которого есть куча серверов и клиентов, и все они будут работать друг с другом.
У меня эта же музыка доступна через Jellyfin, но у него тоже свой протокол, а клиентов к нему всего полтора, и все на iOS/Android. Десктопных вдвое меньше, и те не работают. (%
Configuration
ostui looks for a configuration file named config in either $HOME/.config/ostui or the directory containing the executable.
#Example Configuration
Often, the command line arguments can be stuffed into the config file.
[auth]
username = 'admin'
password = 'password'
plaintext = true # Use 'legacy' unsalted password authentication (default: false)
[server]
host = 'https://your-subsonic-host.tld'
Не включай дурака. У тебя все хедеры в одном /usr/include, и ты в принципе не сможешь отделить мух от котлет.
А каких мух от каких котлет ты собрался отделять в линуксах? Ну ок, во фряхе есть «порты», и из них всё ставится в /usr/local. В линуксах портов нет, есть репозитории, все пакеты ставятся из репозитория. Тоже в одно место. Что и от чего тут отделять? Тут тоже есть отделение, только по другому признаку: пакетный менеджер ничего не кладёт в /usr/local, а админ ручками наоборот — всё кладёт именно в /usr/local (кроме того, для чего лучше подходит /opt) b ничего не кладёт в /usr за пределами local. Вот тебе и отделение мух от котлет.
То, что пароль надо хранить в открытом виде — уже плохо. Даже если сделать файл -r--------, это не панацея.
Но проблема не в этом. Оно подключается очень долго, а потом начинает воспроизведение очень долго и в целом тупит при навигации.
Используемый на данный момент supersonic (тоже на Go, но GUI) работает ощутимо быстрее.
> То, что пароль надо хранить в открытом виде — уже плохо
А как вы бы решили эту проблему? При условии, что мы не можем привязываться к OpenPGP или GNOME Keyring. OpenSSL (чтобы ограничить доступ к ключу только пользователю процесса)?
Это как? По какому признаку будем определять критичность? Или типа glibc/musl отдельно, и там же ядро, а всё остальное отдельно? И… зачем?
Хотя чего это я… у вас и системы-то никакой нет, просто кучка разношёрстного софта, склеенного изолентой (даже не всегда синей!). (%
Да, «система» — это совокупность разношёрстного софта, всё верно. Это и минус и плюс одновременно, тут уж кому как. Но именно поэтому и никакое отделение «системных» библиотек от «несистемных» тут смысла и не имеет, это во фряхе понятно, что есть «система», а есть «порты», в линуксах такого нет. Ну точнее в каком-то смысле есть, конечно: «система» это всё что из реп, пакетным менеджером установлено, а «не система» — это то, что админ руками понаписал, понакачал, понатырил у других админов, или понаставил через make install. Если так взглянуть на это разделение, то вот точно так же и получается, что «система» вне local, а «не система» — в /usr/local, и всё как раз таки отделено.
мы не можем привязываться к OpenPGP или GNOME Keyring
Можем, но всегда найдутся недовольные тем или иным решением.
А как вы бы решили эту проблему?
Ну, например, как это сделали msmtp или isync: Там можно указать passwordeval/PassCmd вместо пароля, и оно вызовет нужную команду и заберёт пароль из stdout. UNIX-way! А какую программу для этого использовать — это уже каждый сам выберет.
Это как? По какому признаку будем определять критичность?
Если без определённых библиотек ОС не загружается и/или не даёт себя исправить в интерактивном режиме — они критичные.
Да, во фряхе есть статически слинкованный набор софта в /rescue, на случай совсем уж котострофы, но я не припомню, чтобы он хоть раз понадобился. (=
Да, «система» — это совокупность разношёрстного софта, всё верно. Это и минус и плюс одновременно, тут уж кому как.
Ну объективно это минус. Во фряхе это тоже разношёрстный софт, но он хотя бы проходит аудит и патчится (под нужды системы) одной командой разработчиков с общим видением, прежде чем попасть в систему. Не идеально, но стабильно.
Но именно поэтому и никакое отделение «системных» библиотек от «несистемных» тут смысла и не имеет, это во фряхе понятно, что есть «система», а есть «порты», в линуксах такого нет.
Софт из портов может в моменте не собраться (потому что мейнтейнер одной из зависимостей не успел запушить обновления, а нужная тебе софтина уже на них расчитывает). В роллинговых линуксах такая ситуация тоже возможна, потому что подход тот же: куча независимых мейнтейнеров без строгой координации (и особого контроля) поддерживают то, что нужно лично им.
Ну точнее в каком-то смысле есть, конечно: «система» это всё что из реп, пакетным менеджером установлено
По такому принципу и какой-нибудь toilet, cowsay и fortune — "система". (%
Но я не об этом. Вот, допустим, юзер совсем балбес, без опыта, без понимания, он не хочет разбираться и/или ему просто некогда. Он спросит у какого-нибудь ChatGPT, и оно ему случайно предложит команду, удаляющую glibc или ядро, с флагом, чтобы менеджер пакетов не спрашивал подтверждения. И ой.
Или чуть другой сценарий: удалить какой-нибудь NetworkManager из попсового дистрибутива. Всё, обратно его уже не установить — сети нет.
Во фряхе можно удалить вообще все пакеты/порты, даже сам менеджер пакетов можно удалить. И это не превратит систему в тыкву. Да, она перестанет выполнять часть поставленных ей задач, требующих софта из пакетов/портов, но всё можно вертать взад штатными средствами, без всяких LiveUSB, Single User Mode и прочего. Впрочем, pkgbase уже на этапе публичного тестирования, так что скоро у нас будут те же проблемы, что и у вас. (%
а «не система» — это то, что админ руками понаписал, понакачал, понатырил у других админов, или понаставил через make install.
А к чему отнести всякие PPA, AUR и прочие оверлеи и пользовательские репозитории? Из них софт ставится в общую кучу обычно.
Я не утверждаю что фряха идеальна, но в некоторых вопросах она чуточку лучше. Потому что UNIX-way.
По такому принципу и какой-нибудь toilet, cowsay и fortune — «система». (%
Естественно. Если они из реп поставлены, конечно.
Но я не об этом. Вот, допустим, юзер совсем балбес, без опыта, без понимания, он не хочет разбираться и/или ему просто некогда. Он спросит у какого-нибудь ChatGPT, и оно ему случайно предложит команду, удаляющую glibc или ядро, с флагом, чтобы менеджер пакетов не спрашивал подтверждения. И ой.
Если юзер совсем балбес, он может и тупо sudo rm -rf / сделать.
Или чуть другой сценарий: удалить какой-нибудь NetworkManager из попсового дистрибутива. Всё, обратно его уже не установить — сети нет.
Приехали, теперь уже и всякие NetworkManager — «система»?..
Не, это странный подход и попытка разделить пакеты на важные и неважные по какому-то очень мутному критерию. Я вот не пользуюсь NetworkManager, пару раз потыкал где-то в нулевых, не особо понял, нафиг оно нужно (хотя, говорят, на ноутах при постоянной смене wifi удобно, хз), и больше никогда не ставил. А кто-то, наверное, и правда считает его важным. Но кто-то другой посчитает важным, скажем, нормальный текстовый редактор (типа без него тоже нельзя восстановить систему в случае чего, а какой-нибудь sed не для всех), а ещё кто-то вообще иксы с вяленым. Субъективщина это всё, нет чёткого критерия, и не нужно такое разделение на уровне дистрибутива.
Я понимаю, как это работает во фряхе, и там это действительно имеет смысл. Но в линуксе не так, не надо сюда пытаться притащить тот же подход. Здесь он другой, и это по своему замечательно. Лучше же, когда есть разные системы, а не все под копирку.
А к чему отнести всякие PPA, AUR и прочие оверлеи и пользовательские репозитории? Из них софт ставится в общую кучу обычно.
Ну разве что вот это можно было бы отделить. Но можно и не отделять, ибо не очень понятно, зачем. А главное, куда тогда лазить ручками админу, и куда совсем не лезет пакетный менеджер? Разве что ещё один слой создать, /usr/local/local, или типа того, тогда будет иметь смысл, наверное. Ну или сделать /local и /usr/local, чтобы совсем уж матрёшек не городить. В таком виде идея даже интересная. Но если её не реализовывать, и принять как данность, что есть всего два «уровня», я всё же предпочту как есть — пускай пакетный менеджер хозяйничает в /usr, а админ ручками — в /usr/local, как по мне, это несколько полезнее, чем отделять AUR/PPA.
Опять же, повторюсь, во фряхе такой подход имеет смысл, и именно там я его не критикую. Просто он как-то плохо натягивается на GNU/Linux.
P.S. Есть ещё вариант сильно revamp’нуть FHS наконец, а на практике убрать эти дурацкие симлинки /bin и /lib из нынешних линуксов, а из /usr всё перенести в корень, то есть чтобы было /bin, /lib, /share, /include, /src и /local. Для совместимости с захардкоженными путями в скриптах добавить симлинк /usr→/. Было бы как-то аккуратнее, упорядоченнее что ли — /usr нынче не выполняет в линуксах никакой задачи, он просто так есть. И вот тогда стало бы вполне элегантно — пакеты из реп лезут везде, кроме /local (и возможно /opt), всякие AUR/PPA можно в /local, а админ ручками в /local/usr или типа того. Я вообще не очень понимаю, зачем вот это нагородили с убиранием всего в /usr и добавлением симлинков в корень — раз уж смешали /bin, /usr/bin, /sbin и /usr/sbin все в кучу — надо было наоборот в логичный и понятный /bin всё это сложить, аналогично с /lib, ну и остальное уж по пути из /usr вытащить. С FHS это бьётся точно так же, как и эти симлинки — делаем симлинк /usr→/, и всё по прежнему доступно.