@proGO

Страница 731 из 1674
corpix
22.07.2017
06:36:45
(вообще мне кажется что если перестать использовать всякую джавню то в /opt никакого говна не будет вообще)

Dmitri
22.07.2017
06:37:35
(вообще мне кажется что если перестать использовать всякую джавню то в /opt никакого говна не будет вообще)
и опять не соглашусь: 1. Там будет еще много чего. 2. Джавню использовать можно и нужно. Для своих задач - вещь.

corpix
22.07.2017
06:39:22
вот тут прям не соглашусь. Альтернативы?
Альтернативы? Делать софт таргетированно под линукс. Ну или перепаковывать, вот например как я кафку по полочкам раскладываю https://github.com/corpix/kafka-container/blob/master/kafka/prepare.sh

Google
Roman
22.07.2017
06:40:08
Ну вы жжоте коты

corpix
22.07.2017
06:41:33
Утро субботки, чё бы не похоливарить? :D

Dmitri
22.07.2017
06:42:58
А что там ещё будет? Я помимо джавни ничего в /opt не видел
ну вот, к слову, лучи поноса разработчикам Go пошли, например. Он отлично в /opt ложится. Как там и лежал. И клал Go на весь ваш fhs, например

Еще в /opt традиционно Qt ложится.

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

Ну вы жжоте коты
это мы еще не начинали) так, разминаемся... Не каждый же день о дженериках)

corpix
22.07.2017
06:45:32
ну вот, к слову, лучи поноса разработчикам Go пошли, например. Он отлично в /opt ложится. Как там и лежал. И клал Go на весь ваш fhs, например
Да, я им давно, ещё за реализацию некоторых типов в стандартной библиотеке про крипту, хочу послать несколько лучиков. А ещё за то что вся стандартная либа в errors.New() и fmt.Errorf() вместо того чтобы выделить отдельные типы под каждую ошибку. Но это ладно. В дистрибутивах он нормально упакован, по человечески

Еще в /opt традиционно Qt ложится.
Его тоже можно разложить по человечески и кажется в нормальных дистрибутивах оно так и сделано. Это конечно поднимает вопрос ручной установки ПО в систему, что как бы тоже не нужно делать. Всё должно быть из пакетов, иначе - дорога в ад

Dmitri
22.07.2017
06:47:07
Короче, я не понимаю принципиального различия между /, /usr, /usr/local и /opt/vendorname. Ровно одно и то же, просто сложено в разных местах.

corpix
22.07.2017
06:48:57
ну вот, собственно, что такое /opt. Предполагается, что конечный разработчик унутре своего каталожега в /opt организует совершенно стандартную иерархию. Ровно такую, как лежит в /, в /usr и в /usr/local
Я так в /home/%username% делаю, нет нужды ставить что-то от супер-пользователя в какой-то левый каталог, когда можно локально, прямо в своей домашней папке сделать несколько префиксов

Google
corpix
22.07.2017
06:49:48
"Все должно быть из пакетов" - дорога в никуда.
Напротив. Систему, установленную из пакетов, гораздо удобнее обслуживать и производить аудит в случае чего

Dmitri
22.07.2017
06:50:53
Я так в /home/%username% делаю, нет нужды ставить что-то от супер-пользователя в какой-то левый каталог, когда можно локально, прямо в своей домашней папке сделать несколько префиксов
в конечном итоге, нет разработчиков, которые ориентируются на /opt. Есть только такие, которым срать, где будет корень их иерархии и они отдают этот выбор мейнтейнеру/конечному пользователю/пофиг вообще кому. Не вижу в этом ничего плохого.

Rail'
22.07.2017
06:51:21
Парни, как и где константой хранить такую строку: fmt.Sprintf("amqp://%s:%s@%s:%s", settings.RUSER, settings.RPASSWD, settings.RHOST, settgings.RPORT) чтобы каждый раз не создавать новую строку

corpix
22.07.2017
06:51:30
вот теперь я вас осуждаю. Без реального обоснования нужности на /home вообще noexec стоять должен.
А оно где-то есть по-умолчанию? У пользователей много чего может лежать нужного, например локальные тулзы, которые эти пользователи тянут из своих dotfiles

Dmitri
22.07.2017
06:53:09
corpix
22.07.2017
06:53:20
Уютно там, в идеальном мире?)))
До идеального мира ещё очень далеко, но мы идёт потихоньку

Dmitri
22.07.2017
06:53:56
тулзы можно сложить и за пределами хомяка... А еще их бы изолировать...

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

corpix
22.07.2017
06:55:17
по умолчанию - в чем-нибудь узкоспецифичном. В Андроиде, наверное, например.
Возможно. Но я из угроз, которую noexec может предотвратить только 1 припоминаю - подмена PATH и эскалация привилегий засчет этого. Но noexec это только 1 заплатка и полностью проблему не решает. Так что особо смысла в нем не вижу

Roman
22.07.2017
06:55:52
"Все должно быть из пакетов" - дорога в никуда.
Это дорога в пакетированный рай.

corpix
22.07.2017
06:55:54
тулзы можно сложить и за пределами хомяка... А еще их бы изолировать...
Да, в контейнере запускать например. У меня всё рабочее окружение крутится в одном контейнере, отдельно от системы и доступа ни к чему кроме проектов не имеет

Dmitri
22.07.2017
06:56:29
Это дорога в пакетированный рай.
это дорога к возврату в 0.3% пользователей

corpix
22.07.2017
06:57:28
чем усложняют? Офигенно сложным выбором, куда распаковать архив?
Да хотя бы тем что надо отдельные policy для selinux/apparmor писать. Ну, это мейнтейнерам. А тем кто это поделие обслуживает нужно запоминать ещё и структуру каталогов, которую там разработчики выдумали

Google
corpix
22.07.2017
06:58:22
Проблема должна решаться комплексно, но, допустим, такую вещь, как положить в хомяк скрипт, который делает rm -rf ~/ оно вполне себе побеждает
Ну я могу вместо скрипта отредактировать профиль и сделать алиас, который тоже самое сделает. Так что не решает

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

это дорога к возврату в 0.3% пользователей
Если пакетироваться будет как в дебиане то возможно :D А так, rpm'ы собирать совсем не сложно

Кстати про пакеты... вот этот товарищ дело пишет http://0pointer.net/blog/revisiting-how-we-put-together-linux-systems.html

Dmitri
22.07.2017
07:00:53
Да хотя бы тем что надо отдельные policy для selinux/apparmor писать. Ну, это мейнтейнерам. А тем кто это поделие обслуживает нужно запоминать ещё и структуру каталогов, которую там разработчики выдумали
Попробуем по порядку: 1. Мейнтейнер один фиг будет писать policy, иначе он не мейнтейнер. 2. Если разработчик вменяемый, нифига запоминать не надо. Есть /opt/vendorname, а унутре - bin, var, etc и прочие так полюбившиеся вам вещи. В том и смысл /opt. 3. Если унутре не fhs - значит, предполагается, что оно не предназначено для опакечивания, и нефиг мейнтейнерам туда лезть.

Dmitri
22.07.2017
07:02:02
Если пакетироваться будет как в дебиане то возможно :D А так, rpm'ы собирать совсем не сложно
Вот какбэ вы головняк мейнтейнеров сейчас на разработчика переложить попытались. Низачот.

Dmitri
22.07.2017
07:03:15
Не консистентно это, раздражает. Нужна одна структура, которой все будут придерживаться
дык, она и есть, номинально. Все, что поддерживается мейнтейнерами - /usr, что сам насобирал и поставил руками - /usr/local, все, что скачал с сайта разработчика и распаковал оттуда - /opt/vendor

Roman
22.07.2017
07:03:16
Не консистентно это, раздражает. Нужна одна структура, которой все будут придерживаться
На рынке 13 разных стандартов. О боже! Нужен единый стандарт...

corpix
22.07.2017
07:03:44
Вот какбэ вы головняк мейнтейнеров сейчас на разработчика переложить попытались. Низачот.
Ну, мейнтейнеров то не много обычно. И мейнтейнить им многое приходится. Как по мне - вполне разумно это на разработчика переложить, чтобы людям проще было

Dmitri
22.07.2017
07:03:55
И, собственно, что там внутри /opt/vendor - головняк вендора. Не нравится - удали.

corpix
22.07.2017
07:04:12
На рынке 13 разных стандартов. О боже! Нужен единый стандарт...
Он есть уже, просто не все его придерживаются

Dmitri
22.07.2017
07:05:40
И к пункту 1 добавлю, мейнтейнеру policy придётся писать в любом случае, да. Но там будет больше копипасты и правил, чем могло бы быть
Дык, срать на мейнтейнера. Если приложение - пакет дистрибутива, мейнтейнер положит его в /usr, и напишет ровно одни полиси для ровно одного случая. Если кто-то хочет то же самое поставить руками в /opt - это НЕ головняк мейнтейнера, пусть тот, кто ставит, полиси и пишет. Мейнтейнер сопровождает ровно один кейс - тот, который считает единственно правильным.

Roman
22.07.2017
07:07:02
Он есть уже, просто не все его придерживаются
Это вы про всякие hpux, солярисы и фрибсд? В юниксах исторически настолько много было всяких вариаций, что вот эти /usr, /usr/local, /opt есть манна небесная уже

Google
Roman
22.07.2017
07:08:45
В /opt например идет очень много бинарного проприетарного говна. Лучше оно пусть живет там, чем разбросано по всей системе.

Dmitri
22.07.2017
07:09:06
Ну, мейнтейнеров то не много обычно. И мейнтейнить им многое приходится. Как по мне - вполне разумно это на разработчика переложить, чтобы людям проще было
Мейнтейнер - это такой человек, который: а) сопровождает 1 дистрибутив б) следит за политикой этого дистрибутива в) в теории, значет, что делает г) является "заслоном" между недобросовестным разработчиком и конечным поьзователем. Т.е. он НЕ ДОЛЖЕН доверять полиси, написанным разработчиком. Он их один хрен сам родить должен для своего конкретного окружения. Иначе говно он, а не мейнтейнер. Разработчик же НЕ ДОЛЖЕН изучать причуды в политике 152 разрозненных дистрибутивов и писать разветвленные деревья полисей на каждый возможный случай. Мейнтейнер один хрен это (в идеале) лучше сделает.

corpix
22.07.2017
07:11:10
И каждый дистрибутив патчит, пересобирает :)

Куча человекочасов в помойку

Dmitri
22.07.2017
07:11:42
В /opt например идет очень много бинарного проприетарного говна. Лучше оно пусть живет там, чем разбросано по всей системе.
Вот тут согласен. И это проприетарное говно, раз оно там уже появилось, вероятно, почему-то нужно. Так что пусть лучше оно в опте лежит и за пределы оного не растекается.

Да, мейнтейнер и напишет полиси. Но, в системах есть базовые полиси для /etc, например, которые мейнтейнеру придётся повторить для /opt/some-shit-software/etc и т.д.
у вас какие-то странные представления о мейнтейнере. Вот есть базовые полиси - они для того, что в /usr. Согласен, это работа мейнтейнера. Вот есть /opt, куда складывают все, что ни попадя. Вот тут уже НЕ работа мейнтейнера. Сложил - разруливай. Не хочешь разруливать - удали.

corpix
22.07.2017
07:13:44
Ну хз, проприетарное бинарное говно может и пакетами распространяться, лежа рядом с другим бинарным неговном из пакетов. На сегодняшний день иметь репозиторий на каком-нибудь suse OBS или fedora copr не сложно. Зато всё можно уложить в предсказуемую иерархию и в пакет

Dmitri
22.07.2017
07:15:21
А теперь предлагаю вот эту ситуацию с проприетарным говоном аж с 2 точек зрения рассмотреть.

corpix
22.07.2017
07:15:45
Не может. Имеем диллему шерифа и индейцев.
Что это за диллема? Я не в курсе

corpix
22.07.2017
07:16:14
Хех

Dmitri
22.07.2017
07:17:15
А мы сейчас про какие полиси говорим? Я говорил про selinux/apparmor policy, т.е. правила для контроля доступа и безопасности
Отрежь все. Если кому-то что-то нужное отрезало полисями - пусть ручками даст права. Не хочет разбираться - не так оно ему нужно. Все, тут вопрос решен? Переходим к варианту все-в-пакет?

Google
Dmitri
22.07.2017
07:20:55
Окей, поехали дальше. Все опакечиваем.

Т.е. бабушка-с-линуксом поднимает себе репозиторий с нужными ей пакетами, добавляет репку и ставит оттуда. Реально???)))

Или это разработчик софтины должен поднять репку для федоры 22,23,24,25,26, для suse, для debian 6,7,8,9, для убунты 12.04,14,04,16,04 - и это еще по минимуму, оттестить все кейсы, отловить все баги и конфликты на адресуемых системах, чтобы получить письмо от "благодарного пользователя" с содержанием "Говно твой софт, у меня на минте не завелось" или "А где е-билды, мля?"

corpix
22.07.2017
07:24:10
Т.е. бабушка-с-линуксом поднимает себе репозиторий с нужными ей пакетами, добавляет репку и ставит оттуда. Реально???)))
Нет, погодите. Есть разработчик, который пилит какой-то проприетарный софт. Его компания поднимает репозиторий(или просто использует suse OBS), в своём контуре собирает бинарники для своего софта, пакетирует их, доставляет в репозиторий. Потом пользователь добавляет себе в конфигурацию пакетного менеджера новый репозиторий и ставит софт. Я вот так это вижу

Daniel
22.07.2017
07:25:05
коллеги, вы ошиблись чатом :)

corpix
22.07.2017
07:26:48
Нюансы уточним: 1. Пакетирует под какие дистрибутивы? 2. Под какие дистрибутивы держать репозитории?
Хотя бы под ubuntu && fedora, чтоб получить deb && rpm(которые в теории могут быть и в другие дистры установлены/портированы людьми). Пакетировать это конечно сложнее, чем просто свалить всё в /opt, но всёже - порядка сильно больше.

Осталось понять: 1. Зачем? 2. Как это окупать?
Карма сама себя окупает. Когда сообщество видит что к ним лицом, а не с голой жопой, то такие затраты уж точно отобьются

Dmitri
22.07.2017
07:30:35
Хотя бы под ubuntu && fedora, чтоб получить deb && rpm(которые в теории могут быть и в другие дистры установлены/портированы людьми). Пакетировать это конечно сложнее, чем просто свалить всё в /opt, но всёже - порядка сильно больше.
Ключевое слово "в теории" могут быть установлены. В реальности все веселее, как доктор говорю. На практике, если опакечивать будет мейнтейнер, ему удобнее иметь набор исходников или дерево каталогов с бинарями. Он уже опакетит. Нахрена ему сначала распаковать, а потом упаковывать обратно? В том и фишка, что конкретно в /opt никто и не сваливает. Разработчик говорит: вот есть корень, относительно него путь к либам - lib, к конфигам - etc. А уж что будет корнем - головняк получателя софта. И это, в данном случае, верно.

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

А еще этому самому проприетарному говнописателю понадобилась библиоткеа x версии 2.7.168b345 с его лично патчами. И мейнтейнер дистрибутива его совершенно обоснованно лесом послал, отказавшись ее в дистриб тащить.

А в /opt она никому не мешает.

И, по секрету, нет никакого софта, написанного, чтобы лежать в /opt

Есть только софт в зашитыми намертно абсолютными путями, и есть софт, с зашитыми намертво относительными путями.

Если пути относительные - срать на то, где оно лежит. Распакуй вместо /opt в /usr/local или тупо в /usr - ничего не изменится. Будет ровно так же работать.

Если абсолютные - это либо узкосистемный софт, либо разработчик-гомосек.

corpix
22.07.2017
07:37:43
Ключевое слово "в теории" могут быть установлены. В реальности все веселее, как доктор говорю. На практике, если опакечивать будет мейнтейнер, ему удобнее иметь набор исходников или дерево каталогов с бинарями. Он уже опакетит. Нахрена ему сначала распаковать, а потом упаковывать обратно? В том и фишка, что конкретно в /opt никто и не сваливает. Разработчик говорит: вот есть корень, относительно него путь к либам - lib, к конфигам - etc. А уж что будет корнем - головняк получателя софта. И это, в данном случае, верно.
Если в этой цепочке есть исходники и мейнтейнер, то возможно ему будет удобнее самому это сделать, да. Задача разработчика только исходники подготовить так чтобы было не больно их либо распихать по /etc, /usr/bin, ... в крайнем случае сложить в /opt, но из пакета. Но в любом случае, когда есть "исходники пакета"(например .spec для rpm) мейнтейнеру будет сильно проще понять дивный внутренний мир программы, которую он упаковывает.

Страница 731 из 1674