# Azure Linux üzerinde IronPDF ve WEBSITE_RUN_FROM_PACKAGE
.NET API'yi Azure Linux App Service üzerinde `WEBSITE_RUN_FROM_PACKAGE` etkinleştirilmiş şekilde IronPDF kullanarak dağıttığınızda, Chrome render aygıtı dağıtımı başarısız oluyor ve uygulama başlangıçta bir hata oluşturuyor.
```txt
Error while deploying IronPdf Chrome renderer: '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')'
```
`WEBSITE_RUN_FROM_PACKAGE` ayarlandığında, `/home/site/wwwroot` dizini salt okunur hale gelir. IronPDF, başlangıçta yerel Chrome render aygıtı ikili dosyalarını ve çalışma zamanı kütüphanelerini yazılabilir bir konuma çıkarması gerektiği için salt okunur kısıtlaması dağıtımı engeller. Ayrıca, Azure'un varsayılan Linux ortamı gerekli sistem kütüphanelerine önceden sahip olmayabilir, bu da eksik paylaşılan nesne hatalarına neden olur.
## Çözüm
Dağıtım sınırlamalarınıza bağlı olarak üç seçenek mevcuttur.
### Seçenek 1: Eksik Bağımlılıkları SSH ile Yükleyin
Uygulama Hizmeti'ne SSH ile erişin ve gerekli sistem kütüphanelerini yüklemek için aşağıdaki komutları çalıştırın:
```bash
apt update
apt install -y libc6-dev libgtk2.0-0 libnss3 libatk-bridge2.0-0 \
libx11-xcb1 libxcb-dri3-0 libdrm-common libgbm1 libasound2 \
libxkbcommon-x11-0 libxrender1 libfontconfig1 libxshmfence1
```
Bu geçici bir çözümdür. Bu şekilde yüklenen paketler yeniden başlatmalar arasında kalmaz ve dışa yönelik güvenlik duvarı kısıtlamaları olan üretim ortamları için uygun değildir. Linux dağıtımına göre gereken paketlerin tam listesi için [Linux dağıtım kılavuzuna](/get-started/linux/) bakın.
### Seçenek 2: Özel Docker Container Kullanımı (Linux için Önerilir)
Ubuntu veya Debian tabanlı özel bir Docker imajı oluşturun, gerekli sistem paketlerini `apt` ile yükleyin ve proje dosyanıza `IronPdf` ve `IronPdf.Native.Chrome.Linux` NuGet paketlerini ekleyin. Bu yaklaşım, render aygıtına yazılabilir bir dosya sistemi ve imaj oluşturma zamanında önceden yüklenmiş bağımlılıklar sağlar.
Uygulamanıza uygun NuGet paketlerini `.csproj` ekleyin:
```xml
<PackageReference Include="IronPdf" Version="*" />
<PackageReference Include="IronPdf.Native.Chrome.Linux" Version="*" />
```
`IronPdf.Native.Chrome.Linux` sürümünün, `IronPdf` paket sürümünüzle eşleştiğinden emin olun. Projeye yerli paketin dahil edilmesi, IronPDF'nin bir çalışma zamanı indirmesi yapmasını engeller, bu da salt okunur veya ağ kısıtlamalı bir ortamda başarısız olurdu.
Tam bir Dockerfile örneği için [IronPDF Docker rehberine](/get-started/ironpdf-docker/) bakın.
### Seçenek 3: Bir Windows Uygulama Hizmetine Taşıma
Windows Uygulama Hizmetleri, `WEBSITE_RUN_FROM_PACKAGE` için aynı dosya sistemi izin kısıtlamalarına sahip değildir. IronPDF'nin Windows çalışma zamanı kütüphaneleri yerel olarak desteklenir ve herhangi bir sorun olmadan çıkarılabilir. Bir Windows Uygulama Hizmetine geçiş, temel nedeni tamamen ortadan kaldırır.
.NET API'yi Azure Linux App Service üzerinde WEBSITE_RUN_FROM_PACKAGE etkinleştirilmiş şekilde IronPDF kullanarak dağıttığınızda, Chrome render aygıtı dağıtımı başarısız oluyor ve uygulama başlangıçta bir hata oluşturuyor.
Error while deploying IronPdf Chrome renderer: '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')'
Error while deploying IronPdf Chrome renderer: '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')'
Text
WEBSITE_RUN_FROM_PACKAGE ayarlandığında, /home/site/wwwroot dizini salt okunur hale gelir. IronPDF, başlangıçta yerel Chrome render aygıtı ikili dosyalarını ve çalışma zamanı kütüphanelerini yazılabilir bir konuma çıkarması gerektiği için salt okunur kısıtlaması dağıtımı engeller. Ayrıca, Azure'un varsayılan Linux ortamı gerekli sistem kütüphanelerine önceden sahip olmayabilir, bu da eksik paylaşılan nesne hatalarına neden olur.
Çözüm
Dağıtım sınırlamalarınıza bağlı olarak üç seçenek mevcuttur.
Seçenek 1: Eksik Bağımlılıkları SSH ile Yükleyin
Uygulama Hizmeti'ne SSH ile erişin ve gerekli sistem kütüphanelerini yüklemek için aşağıdaki komutları çalıştırın:
Bu geçici bir çözümdür. Bu şekilde yüklenen paketler yeniden başlatmalar arasında kalmaz ve dışa yönelik güvenlik duvarı kısıtlamaları olan üretim ortamları için uygun değildir. Linux dağıtımına göre gereken paketlerin tam listesi için Linux dağıtım kılavuzuna bakın.
Seçenek 2: Özel Docker Container Kullanımı (Linux için Önerilir)
Ubuntu veya Debian tabanlı özel bir Docker imajı oluşturun, gerekli sistem paketlerini apt ile yükleyin ve proje dosyanıza IronPdf ve IronPdf.Native.Chrome.Linux NuGet paketlerini ekleyin. Bu yaklaşım, render aygıtına yazılabilir bir dosya sistemi ve imaj oluşturma zamanında önceden yüklenmiş bağımlılıklar sağlar.
Uygulamanıza uygun NuGet paketlerini .csproj ekleyin:
IronPdf.Native.Chrome.Linux sürümünün, IronPdf paket sürümünüzle eşleştiğinden emin olun. Projeye yerli paketin dahil edilmesi, IronPDF'nin bir çalışma zamanı indirmesi yapmasını engeller, bu da salt okunur veya ağ kısıtlamalı bir ortamda başarısız olurdu.
Windows Uygulama Hizmetleri, WEBSITE_RUN_FROM_PACKAGE için aynı dosya sistemi izin kısıtlamalarına sahip değildir. IronPDF'nin Windows çalışma zamanı kütüphaneleri yerel olarak desteklenir ve herhangi bir sorun olmadan çıkarılabilir. Bir Windows Uygulama Hizmetine geçiş, temel nedeni tamamen ortadan kaldırır.
Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.