İçeriğe geç

Swift Paketlerinin Linux Uyumluluğunu Mac'te Test Et

Swift kodunun Linux uyumluluğunu Docker'a dalmadan Mac'inden nasıl test edeceğini hiç merak ettin mi? Bu yazıda, süreci zahmetsiz hale getiren basit bir komutu paylaşacağım!

Swift Paketlerinin Linux Uyumluluğunu Mac'te Test Et

Geçenlerde uygulamalarımdan birindeki Swift ağ kodunu bir Vapor sunucusunda yeniden kullanmak üzere ayırmam gereken bir durumla karşılaştım. Kod Mac’imde sorunsuz derlense de sunucuya deploy ettiğimde birçok hatayla karşılaştım. Bu durum, kodun Linux uyumluluğunu kolayca test etmenin bir yolunu aramama yol açtı — çünkü sunucularda genellikle Linux çalışıyor. Neyse ki Ole Begemann’ın 2020’den şu makalesini buldum ve Docker öğrenmek zorunda kalmaktan kurtuldum.

Ole makalesinde, tek bir komutla Swift kodunu Linux ortamında çalıştırmak için basit bir yaklaşım sunuyor. Tek yapman gereken Mac’ine ücretsiz Docker Desktop App’i kurmak. Ama komut oldukça uzun ve hatırlaması zordu, bu yüzden işleri daha da basitleştirmek istedim. Sonunda tek hatırlamam gereken şeyin swift-linux olduğu bir yaklaşıma ulaştım. İşte nasıl:

Docker Komutunu Basitleştirme

Önce Ole’nin komutunu kısalık için daha da sadeleştirmeye karar verdim:

docker run --rm -it -v "$(pwd):/src" -w "/src" swift

Komutun Açıklaması (merak edersen):

  • docker run: Bir container oluşturur ve başlatır.

  • --rm: Container çıkış yaptığında otomatik olarak kaldırır.

  • -it: Container’ı etkileşimli modda çalıştırır ve bir terminal bağlar.

  • -v "$(pwd):/src": Mevcut dizini ($(pwd)) container’daki /src’ye bağlar, böylece Swift dosyalarına erişebilirsin.

  • -w "/src": Container’daki çalışma dizinini /src olarak ayarlar.

  • swift: Kullanılacak Swift Docker imajını belirtir.

Güvenlik nedenleriyle Ole’nin komutundan --privileged seçeneğini de kaldırdığımı belirtmek isterim — Swift paketlerini test etmek için nadiren gerekiyor.

Pratik Bir Alias Ekleme

Bu komutu çalıştırmayı kolaylaştırmak için ~/.zshrc dosyama bir alias ekledim (örneğin touch ~/.zshrc ile oluşturabilirsin). Bu, macOS’ta artık varsayılan kabuk olan Zsh kabuğunun konfigürasyon dosyası. İşte nasıl yapacağın:

  • Terminal’i Aç

  • ~/.zshrc dosyasını düzenle macOS’ta önceden yüklü metin editörü olan TextEdit’i kullanabilirsin. Basitçe şunu çalıştır: open ~/.zshrc

  • Alias’ı ekle Dosyanın en altına kaydır ve şu satırı ekle:

alias swift-linux='docker run --rm -it -v "$(pwd):/src" -w "/src" swift'
  • Dosyayı kaydet ve kapat

  • Değişiklikleri uygula Konfigürasyon dosyanı yeniden yüklemek için şu komutu çalıştır: source ~/.zshrc

Linux Ortamında Komut Çalıştırma

Alias kurulduğuna göre, artık Swift kodunu Mac’inden doğrudan bir Linux ortamında kolayca test edebilirsin. Terminal’de proje dizinine git ve şunu çalıştır:

swift-linux

☕ İlk çalıştırmada Linux container’ının indirilmesi biraz zaman alacak.

Bu komut seni swift build veya swift test‘i ihtiyacına göre çalıştırabileceğin bir Linux ortamına düşürecek. Mac’ine geri dönmek için sadece exit yaz. Bu sayede her şeyin beklendiği gibi çalışıp çalışmadığını hızlıca görebilir ve sunucuya deploy etmeden önce hataları yakalayabilirsin.

Ve tek hatırlaman gereken swift-linux!

Bu yazıyı beğendin mi? Swift ipuçları ve indie geliştirici güncellemeleri için Bluesky ve Mastodon üzerinden takip et.