У меня есть приложение ASP.NET Core 7, размещенное в Azure Web App Linux. Я использую собственный пакет, который использует GLIBC 2.29 из Linux. Когда я запускаю SSH, я получаю: ASP .NETCore Version: 7.0.0 и когда я запускаю ldd --version, я получаю:
ldd (Debian GLIBC 2.28-10+deb10u2) 2.28
Родной пакет ищет GLIBC 2.29, и если я использую более старую версию родного пакета, основанную на GLIBC 2.28, то он работает как положено.
Мои вопросы:
Н.Б. Я знаю, что могу использовать Docker для выбора определенных компонентов, но я оставляю это на крайний случай.
Могу ли я связать файлы GLIB 2.29 с моей версией?
Да, файлы GLIB можно связать с релизом. Но это не лучший подход, так как мы можем получить проблемы с совместимостью.
Развернуто ASP.NET Core 7 в Azure Linux App service. Когда проверял версию, Даже у меня такая же версия 2.28.
В развернутом Azure Linux App откройте SSH.
Ссылка для открытия SSH — https://YourWebAppName.scm.azurewebsites.net/webssh/host.
Я попытался install/ update установить последнюю версию с помощью приведенной ниже команды.
apt-get install libc6
Выполните следующие шаги, чтобы установить GLIBC 2.29 версию в локальном Linux.
Запустите приведенные ниже команды.
wget https://ftp.gnu.org/gnu/libc/glibc-2.29.tar.gz
tar -xvzf glibc-2.29.tar.gz
Перейдите в корневой каталог glibc-2.29.
cd glibc-2.29
make
make install
Azure Linux App Service
. Мы можем выполнить тот же процесс в Linux Virtual Machine
.Я могу использовать Docker для выбора определенных компонентов
Да, мы можем создать собственный образ в Azure Linux app service и развернуть его в Azure Container Registry.
Ссылка взята с сайта zoomadmin.
Это то, что я получил, когда попытался обновить службу приложений Azure Linux.
Когда я пытался обновить с помощью команды apt-get install libc6, мне сообщалось, что 2.28 — это последняя версия, доступная в приложении Azure для Linux.
Итак, рекомендуется обновить, загрузив исходный код.
Итак, вы подтверждаете, что не можете изменить версию GLIBC службы веб-приложений (Linux), и рекомендуете виртуальную машину Linux или контейнер.