
Dmitri
22.07.2017
06:36:41

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

Dmitri
22.07.2017
06:37:35

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

Google

corpix
22.07.2017
06:39:43

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

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

Dmitri
22.07.2017
06:42:58
Еще в /opt традиционно Qt ложится.
Ну и, собственно, если к вам прислушаются пользователи, лучи поноса коммерческие разработчики под линукс будут получать при любых раскладах, например...
Ну вы жжоте коты
это мы еще не начинали) так, разминаемся... Не каждый же день о дженериках)

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

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

corpix
22.07.2017
06:48:57

Google

Dmitri
22.07.2017
06:49:35

corpix
22.07.2017
06:49:48

Dmitri
22.07.2017
06:50:53

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

Dmitri
22.07.2017
06:51:42

corpix
22.07.2017
06:52:02

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

Roman
22.07.2017
06:55:52

corpix
22.07.2017
06:55:54

Dmitri
22.07.2017
06:56:29

corpix
22.07.2017
06:57:28

Dmitri
22.07.2017
06:57:36

Google

corpix
22.07.2017
06:58:22
Кстати про пакеты... вот этот товарищ дело пишет 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 - значит, предполагается, что оно не предназначено для опакечивания, и нефиг мейнтейнерам туда лезть.


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

Dmitri
22.07.2017
07:02:02

corpix
22.07.2017
07:02:43
Попробуем по порядку:
1. Мейнтейнер один фиг будет писать policy, иначе он не мейнтейнер.
2. Если разработчик вменяемый, нифига запоминать не надо. Есть /opt/vendorname, а унутре - bin, var, etc и прочие так полюбившиеся вам вещи. В том и смысл /opt.
3. Если унутре не fhs - значит, предполагается, что оно не предназначено для опакечивания, и нефиг мейнтейнерам туда лезть.
И к пункту 1 добавлю, мейнтейнеру policy придётся писать в любом случае, да. Но там будет больше копипасты и правил, чем могло бы быть

Dmitri
22.07.2017
07:03:15

Roman
22.07.2017
07:03:16

corpix
22.07.2017
07:03:44

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

corpix
22.07.2017
07:04:12

Roman
22.07.2017
07:04:52

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

corpix
22.07.2017
07:05:51

Roman
22.07.2017
07:07:02

corpix
22.07.2017
07:07:18
Дык, срать на мейнтейнера. Если приложение - пакет дистрибутива, мейнтейнер положит его в /usr, и напишет ровно одни полиси для ровно одного случая. Если кто-то хочет то же самое поставить руками в /opt - это НЕ головняк мейнтейнера, пусть тот, кто ставит, полиси и пишет. Мейнтейнер сопровождает ровно один кейс - тот, который считает единственно правильным.
Тк мейнтейнеру тогда перепаковывать надо. А вот взять туже кафку, например, там когда начинаешь её скрипты растаскивать такой пиздец начинается, что патчить надо https://github.com/corpix/kafka-container/blob/master/kafka/prepare.patch

Google

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

Dmitri
22.07.2017
07:09:06

corpix
22.07.2017
07:10:42

Dmitri
22.07.2017
07:10:46

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

Dmitri
22.07.2017
07:11:42


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

Dmitri
22.07.2017
07:13:59
Мейнтейнер не должен для ?opt полиси писать
Может-то оно может распространяться. В идеальном мире...

Roman
22.07.2017
07:14:54

corpix
22.07.2017
07:15:12

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

corpix
22.07.2017
07:15:45

Dmitri
22.07.2017
07:15:50

corpix
22.07.2017
07:16:14
Хех

Dmitri
22.07.2017
07:17:15

Google

corpix
22.07.2017
07:18:20
Так что поехали дальше

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


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

Dmitri
22.07.2017
07:25:09

corpix
22.07.2017
07:26:48


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) мейнтейнеру будет сильно проще понять дивный внутренний мир программы, которую он упаковывает.