LINUX.ORG.RU

Перенос ICU SQLite плагина из macOS в Linux продакшен

 , , , ,


0

2

Коллеги, нужен совет по подключению ICU плагина для SQLite в условиях ограниченного доступа.

Ситуация:

Есть TypeScript проект с Grist

Подключаю плагин через db.loadExtension(‘libsqliteicu.so’)

Нет доступа к рабочей Linux-машине в продакшене

Есть только git-репозиторий для деплоя

Не хочу настраивать Docker/CD-сборку для компиляции

Что сделал:

Сделал Форк проекта развернул у себя локально восстановил все версии SQL точно такие же как в production

На MacBook собрал libsqliteicu.so из исходников

Локально через Docker и yarn всё работает ✅

Вопросы:

Если я просто перенесу .so файл, собранный на macOS, в Linux-окружение - будет ли работать?

Или лучше скачать готовый собранный плагин для Linux из проверенного источника?

Какие есть риски несовместимости?

Может есть готовые .so файлы для Ubuntu 20.04/22.04?

Варианты которые рассматриваю:

✅ Просто залить мой macOS-собранный .so в репозиторий

✅ Скачать готовый libsqliteicu.so для Linux из интернета

❌ Не хочу настраивать сложную CI/CD сборку

Очень нужен опыт тех, кто уже делал подобное! Особенно с Grist.

Заранее спасибо за советы!



Последнее исправление: yas1ck (всего исправлений: 1)

go

Причём здесь?

Если я просто перенесу .so файл, собранный на macOS, в Linux-окружение - будет ли работать?

Нет

Или лучше скачать готовый собранный плагин для Linux из проверенного источника? … Какие есть риски несовместимости?

Да, если такой источник есть. Несовместимости — разделяемые библиотеки.

kaldeon
()
Ответ на: комментарий от dataman

Like будет 100%. Да уже как бы разобрался с icu и подготовил все для него не вариант брать что то другое, да и спринт кончается через 3 дня нужно успеть закончить и протестировать

yas1ck
() автор топика

Перенос .so файла из macOS в Linux Совместимость Не будет работать: Файлы, собранные для macOS, не совместимы с Linux. Они используют разные системные вызовы и библиотеки, поэтому перенос .so файла из macOS в Linux приведет к ошибкам при загрузке. Рекомендация Лучше скачать готовый собранный плагин для Linux из проверенного источника. Это обеспечит совместимость и минимизирует риски. Риски несовместимости Версии библиотек: Убедитесь, что версия SQLite и ICU, с которыми вы работаете, совпадает с теми, что используются в вашем продакшене. Зависимости: Проверьте, что все зависимости, необходимые для работы плагина, также присутствуют на целевой системе. Готовые .so файлы для Ubuntu Вы можете найти готовые .so файлы для Ubuntu на таких ресурсах, как: SQLite Download Page (проверьте наличие ICU) GitHub репозитории с проектами, использующими ICU для SQLite. Варианты Залить macOS-собранный .so: Не рекомендуется, так как это не будет работать на Linux. Скачать готовый libsqliteicu.so: Это лучший вариант, так как он обеспечит совместимость и минимизирует риски. CI/CD сборка: Если вы измените свое мнение, настройка CI/CD может быть полезной в будущем для автоматизации сборок и тестирования. Заключение Рекомендуется использовать готовый .so файл для Linux, чтобы избежать проблем с совместимостью. Убедитесь, что вы проверяете версии и зависимости, чтобы все работало корректно в вашем окружении. Если у вас есть дополнительные вопросы или нужна помощь с конкретными шагами, дайте знать!

anonymous
()
Ответ на: комментарий от yas1ck

да и спринт кончается через 3 дня нужно успеть

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

no-dashi-v2 ★★★
()