Pull to refresh

Comments 32

Возможно потому, что так написано в документации?

да, вполне разумный аргумент.
но инструкция не является догмой.


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

Есть один аргумент в пользу установки самой свежей версии, даже если она не в официальном репозитории.

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

Да, считается, что в официальном репозитории версии более стабильные, проверенные теми, кто поддерживает репозиторий и/или даже сам дистрибутив ОС. Но что дальше, в случае если баг там всё-таки обнаружится? Поддержка репозитория ничем не поможет, лишь перенаправит к авторам пакета. А те, скажут "попробуйте последнюю версию". Так зачем удлиннять этот путь?

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

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

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

А современные и новые программы релизятся каждые несколько дней-недль, и зависеть от меинтейнера плохой выбор.

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


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

Добавили удобную фичу, вы хотите использовать её при разработке будущих релизов. В случае LTS-дистрибутива ждать придётся до нескольких лет.

Да и периодически актуализировать стек это хорошая практика. Гораздо лучше, чем потом резко мигрировать на далеко ушедшие актуальные версии с кучей breaking changes и подводных камней, которые вылезут все разом.

А про баги странное заявление. Одни уходят, другие приходят, с чего бы они прям копились?
Добавили удобную фичу, вы хотите использовать её при разработке будущих релизов. В случае LTS-дистрибутива ждать придётся до нескольких лет.

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


реплика в сторону: если брать не LTS дистрибутив, то и докер в репозитории будет не пятилетней давности.


А про баги странное заявление. Одни уходят, другие приходят, с чего бы они прям копились?

речь не про то, что они копятся.
когда мы говорим про сложный софт, каждый релиз добавляет какое-то количество багов и исправляет какое-то количество багов.
утрируя, пусть в каждом релизе 100 багов, из них 10 новых, а 10 старых исправлено. ну и пусть у нас 50 релизов в год.
если мы весь год сидим на одном релизе, то мы потенциально можем столкнуться со 100 багами, если же мы обновляемся сразу после выхода каждого релиза — то с 100+49*10=590

Возможно пакеты из реп дистра старее, чем те что в офф. репозитории докера

да, старее. вам действительно нужна самая последняя версия докера?

А вам действительно нужна установка из официального репозитория?

А вам действительно нужна установка из официального репозитория?

да.


  1. это банально быстрее и проще;
  2. это несёт гораздо меньше потенциальных рисков по несовместимости между разными версиями пакетов.

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

Так зачем удлиннять этот путь?

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


и да, как минимум security fix'ы debian активно бэкпортирует.


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

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


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

lfs никто не отмненял )

если столкнёшься с багом

В моей практике это не если, а когда.

Про lfs не понял.

На самом деле я тоже предпочитал официальные репозитории альтернативным способам установки, так как чувствую, что это linux way. Но многократно сталкивался с багами или длительным отставанием даже мажорной версии dotnet, suricata, smbclient, grpc, terraform, terragrunt, terraspace, nodejs, а то и вовсе отсутствием для выбранного дистрибутива.

Кстати, возможно, на идеоматичность подхода со временем повлияет тот факт, что в мире docker базовый образ по умолчанию это Alpine, если ни busybox. И всё более выраженной становится потребность иметь пакет именно для него. Хотя пока что как раз из-за отсутствия многих пакетов и приходится собирать образы на centos или debian (ну это, на самом деле, вообще экзотика).

Про lfs не понял.

речь была про то, что выбирая дистрибутив, вы доверяете разработчикам дистрибутива сборку ядра, libc, bash, openssh, grep и ещё миллиона программ.
притом сборка — это не чисто механическое «make», это принятие стратегических и тактических решений: использовать gcc или clang (и какой версии) как основной компилятор для сборки программ на си, использовать glibc или musl, systemd или openrc; на многие пакеты разработчики дистрибутива накладывают десятки патчей.


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

Да вроде ж одинаковая версия 20.10. Или 20.10.12 vs 20.10.5 какое-то значение имеют на практике?

Если бы не имело значения, их бы наверное не выпускали?)

Сколько ни пользуюсь докером, всегда были проблемы со «стабильными» версиями в составе дистрибутива, особенно в LTS. То баг, который исправлен только в более поздних версиях, то фича, которая давно всеми используется, но доступна только с какой-то версии.

Т.е. версия дистрибутива может и LTS, а вот docker нет.

примеры можно? именно с докером из состава debain ни разу на грабли не наступал

Да ещё б вспомнить. Поскольку обновление помогает, оно в памяти не оседает. Случайный пример: в Ubuntu 18.04 была такая проблема при использовании qmake. Его помню, потому что недавно пришлось один старый сборочный сервер из-за этого обновлять.

А ради актуальных фич вообще частая история. Если не изменяет память, даже ради поддержки ARG в своё время приходилось обновляться.

это рекомендованный разработчиком способ установки

А рекомендованный разработчиками дистрибутива способ — установка пакета из репозитория дистрибутива

в репозитории разработчика версии акутальнее

Это уже обсудили ранее, строго последние версии докера не так уж часто требуются.

Почему так сложно докер ставится?

Разе не достаточно будет что-то вроде apt-get install -y docker ?

Я на своём компе (не дебиан правда) поставил одной командой: urpmi docker

Всё. И оно работает.

да, всё так, только пакет в debian называется docker.io (имя пакета docker было уже занято)

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

Коль Вы тему изучали, то должны знать, что контейнеры к виртуализации не имеют ни какого отношение. Зачем писать чушь?

Наверное автор не знал про sudo usermod -aG docker $USER.

Однако, это не создание собственного образа с нуля. Используется официальный образ Дебиана. Заявленная цель не достигнута. :)

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

команду на создание образа необходимо выполнить из под sudo

Если добавить пользователя в группу docker то можно и без sudo

sudo usermod -aG docker $USER

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

ко всему вышесказанному негодованию добавлю ещё то что

> докерфайл
>> в mcedit
>>> скриншотом
>>>> с мака

я так понимаю цель была "смотрите у меня есть мак"?

Sign up to leave a comment.

Articles