Azure Linux App Hizmeti İçin Dağıtım Sorun Giderme
IronPDF, bir Azure Linux App Hizmeti'ne dağıtıldığında, uygulama eksik sistem kütüphaneleri nedeniyle PDF'leri görüntülemeyebilir. Bu durum, Linux ortamlarının Windows'a göre daha az önceden kurulmuş paketle gelmesi ve IronPDF görüntüleme motorunun çalıştırılması için ek paylaşılan kütüphanelere ihtiyaç duymasından meydana gelir.
Multiple issues occurred while trying to deploy Chrome (libatk-1.0.so.0: cannot open shared object file: No such file or directory) (IronInterop.so: cannot open shared object file: No such file or directory) (Read-only file system: '/home/site/wwwroot/runtimes')
Hata, IronInterop.so tarafından gerekli olan bir veya daha fazla paylaşılan kütüphanenin Linux ortamında bulunmadığını ifade eder. Uygulama hizmetindeki SSH konsolundan ldd IronInterop.so çalıştırmak, eksik olan kütüphanelerin tam olarak hangileri olduğunu belirler. Çalışma zamanı klasörü için salt okunur dosya sistemi mesajı, aynı eksik-bağımlılık durumunun ayrı bir belirtisidir.
Çözüm
Adım 1: Eksik bağımlılıkları belirleyin
- Uygulama hizmetini Visual Studio'dan normal şekilde dağıtın.
- Azure Linux App Hizmetiniz için SSH konsolunu açın.
- wwwroot dizinine gidin:
cd /home/site/wwwroot
- Çözümlenmemiş bağımlılıkları listelemek için yerel ikili dosyaya karşı
lddçalıştırın:
ldd IronInterop.so
- Hangi paket adlarının geçerli olduğunu doğrulamak için işletim sistemi sürümünü kontrol edin:
cat /etc/os-release
Adım 2: Eksik kütüphaneleri yükleyin
Çoğu Linux dağıtımı (Debian/Ubuntu tabanlı görüntüler) için gereken paketleri şu şekilde yükleyin:
apt-get update && apt-get install -y libatk1.0-0 libatk-bridge2.0-0 libcups2 libdrm2 libxcomposite1 libxdamage1 libxfixes3 libxrandr2 libgbm1 libxkbcommon0 libasound2 libatspi2.0-0
Ubuntu 24.04 görüntüleri (NET 10 ile kullanılır) için, bazı paket adları değiştiği için şu Dockerfile yönergesini kullanın:
RUN apt update \
&& apt install -y sudo libxkbcommon-x11-0 libc6 libc6-dev libgtk2.0-0 libnss3 libatk-bridge2.0-0 libx11-xcb1 libxcb-dri3-0 libdrm-common libgbm1 libasound2t64 libxrender1 libfontconfig1 libxshmfence1 libgdiplus libva-dev
Adım 3: Tüm bağımlılıkların çözüldüğünü doğrulayın
Kalan çözümlenmemiş girişler olmadığını doğrulamak için ldd bir kez daha çalıştırın:
ldd IronInterop.so
Tüm girişler not found yerine çözümlenmiş bir yol göstermelidir. Tüm bağımlılıklar yerinde olduğu zaman, web uygulaması aracılığıyla PDF oluşturma normal olarak çalışacaktır. Linux dağıtımları arasında gereken paketlerin tam listesi için Linux dağıtım kılavuzuna bakın.

