Очень нехватает (и очень давно) некий, скажем так, параллельный Quicklisp репозиторий с необходимым другим библиотекам DLL/SO. Идея сборки при необходимости, не очень хорошо работает (как показывает практика, особенно в винде, но и в linux'e время от времени).
Кто-нибудь знает были ли какие-то заходы для решения этой проблемы?Или имеются какие-либо мысли/идеи?
Я не знаю и даже не очень понял идею. So ведь наверняка зависят от версии юникса? Даже dll зависят от разрядности.
Ну так можно же узнать текущие тип/версию ОСи, архитектуру и другие параметры! Соотв. держать нужные сборки для каждой комбинации. А принимая во внимание активное использование специальных минималистичных образов для контейнеров и виртуальных машин - вариантов будет не так много!
Целевое использование какое предполагается? Если в продакшене, то сделать докер с нужными нативными зависимостями, а на него уже разворачивать и обновлять лисп-систему со своими библиотеками. Или вообще сделать образ целиком и дальше только в лисп-части ковыряться.
Целевое использование в том, чтобы когда мне необходима quicklisp-библиотека зависимая от нативных библиотек - я мог её воспользоваться, гарантировано и без лишних телодвижений (или с незначительным их кол-вом).
Сделать докер-контейнер это хорошо, но о другом.
Поддерживаю. Было бы замечательно, если бы такой проект существовал. Когда quicklisp-библиотека зависит от нативной, приходится долго искать в интернете подходящую dll-ку (я на винде сижу). Для OpenAL пришлось даже из исходников собирать.
Кстати, никто не обратил внимание, что время сообщения отображается со сдвигом в семь часов относительно Москвы?:)
> Кстати, никто не обратил внимание, что время сообщения отображается со сдвигом в семь часов относительно Москвы?:)
Точно :(
О, теперь кажется нормально.
Само устранилось? Или ты помог?:)
> Или ты помог?:)
Помог, конечно, timezone настроил.
Как бы это можно было бы реализовать...
Я вот думаю, надо смотреть с двух сторон:
- макрос-обёртка автотически запускающая соотв. рестарты
- загрузка/получение-пути к библиотеки по указанным параметрам (которые, по-возможности, должны вычисляться автоматически, например комбинация характеристик системы)Ну и как-то надо продумать, получение и сборку с использованием ресурсов с официальных репозиториев.
Как минимум, нужен репозиторий, где будут храниться все необходимые версии библиотек. Потому что скачивать их с разных репозиториев - это слишком много кода. А вот собрать все нужные библиотеки по параметрам в одном месте - проще. Да и некоторые библиотеки не доступны в виде бинарных файлов, иногда их приходится собирать вручную.
> Как минимум, нужен репозиторий, где будут храниться все необходимые версии библиотек.Ну это само-собой, я это подразумевал.
Но я считаю, нужно их туда не просто класть. А нужно скриптами вытягивать необходимые для сборки ресурсы и скриптами же собирать.
И нужно очень скрупулезно разбивать по версиям/осям и т.д. Главная идея в том, чтобы всё гарантировано работало для проверянных конфигураций.
Разбивка типа:
/architecture/os-type/os-version/lisp-system/lisp-system-arch/lisp-system-version/quicklsp-dist-version/
Может что-то ещё. Если есть что добавить - welcome!
Вопрос такой: есть ли подобные вещи для Java/PHP/Perl/whatever? Оттуда и нужно брать все идеи (и даже реализацию скопировать).
Настоящий программист пишет свои собственные велосипеды.:)
> ... есть ли подобные вещи...?
Первое, что приходит в голову -- JavaScript и npm. Пакет
phantomjs-prebuilt в момент установки скачивает бинари.
Ткнул наугад и нашёл ещё --
ffmpeg-static. Этот бинари хранит внутри пакета.