Здравствуйте, vdimas, Вы писали:
V>Т.е. сложно подхватить уже имеющуюся "родную" либу на целевых линухах.
V>Вместо этого Bazel предлагает то, что он может — скачать некую конкретную версию этой либы с github, но тогда её нужно собрать в виде статической либы, т.е. подключить её тело в проект, а не пользовать уже имеющуюся на машине DLL или SO.
Ну вообще то на самом деле совсем не сложно. Т.е. в своём проекте это делается вообще тривиально — просто указываешь в качестве зависимости свой build файл, в котором нет никакого реального построения (а только ссылки на системные библиотеки). Но и для чужого проекта тоже можно без проблем сделать из командной строки с помощью такой
https://docs.bazel.build/versions/main/external.html#overriding-repositories-from-the-command-line опции. Т.е. опять же меняешь изначальную зависимость автора на свою локальную.
Но! Всё вышеописанное очевидно является дичайшим нарушением самой базовой концепции и философии bazel. Там же в основу всего проекта положена одна простая мысль о 100% повторяемости сборки проекта (конкретной его ревизии) на любых машинах. А описанный выше подход очевидно можно генерировать бинарники с разными поведением при сборке на разных ОС.
Так что хотя технических никаких проблем сделать такое нет, но практически так делать никогда не надо!
P.S. Линуксовый подход с общесистемной помойкой библиотек, управляемых пакетными менеджерами — это полная хрень, ради обхода которой и был придуман Docker.