fcp

MacOS'a Yazılım Yüklerken Nix'i Nasıl Kullanırım?

Serkan A. 14.02.2024 (Güncellenme: 05.05.2024) Takip et
MacOS işletim sisteminize yazılım atmak için Nix’i nasıl kullanacağınızı bilmiyorsanız inceleyebilirsiniz.
MacOS'a Yazılım Yüklerken Nix'i Nasıl Kullanırım?

Nix Paket Yöneticisiyle macOS'ta Yazılım Yükleme

Nix nedir? Nix, platformlar arası konteyner tabanlı geliştirme ortamları sağlayan bir paket yöneticisidir. Docker ve Kubernetes gibi konteyner sistemlerine benzer şekilde, Nix, daha az yapılandırma ve sorunla birlikte makinelere ve ağlara yapılandırılmış geliştirme ortamlarını kurmanıza olanak tanır.

Geleneksel olarak Mac'te, kullanıcılar genellikle üçüncü taraf paketlerini yüklemek için MacPorts veya Homebrew kullanırlar. Her iki sistemin de avantajları ve dezavantajları vardır.

Homebrew, macOS'teki Terminal uygulamasından sadece birkaç komutla paketlerin kurulumunun ve güncellemelerin otomatik ve kolay olmasından dolayı Mac topluluğunda popülerdir.

Ancak, hem Homebrew hem de MacPorts, makinalar arasında taşınabilirlik eksikliğine sahiptir. Homebrew veya MacPorts paketlerini sistemler arasında kurmak için Terminal (shell) komut dosyaları yazabilirsiniz, ancak komut dosyası bakımı karmaşık hale gelebilir ve tüm olası makine yapılandırmalarından haberdar olan komut dosyalarını yazmak genellikle zordur.

Nix, geliştirme ortamlarını konteynerleştirerek ve sistemler arasında daha taşınabilir hale getirerek bu sorunu çözer.

Nix ekosistemi NixOS, NixOS Vakfı'ndan bir Linux dağıtımı ve Nix paket yöneticisini kullanan bir Linux dağıtımıdır. Nixpkgs, Nix paket yöneticisi kullanılarak yüklenen 80.000'den fazla paketin bir koleksiyonudur.

Nixpkgs, Nix paket yöneticisi kullanılarak yüklenir.

Nix için üç ayrı kılavuz bulunmaktadır: Nix Kılavuzu, Nixpkgs Kılavuzu ve NixOS Kılavuzu.

Ayrıca, bir Nix Referans Kılavuzu bulunmaktadır.

Topluluk tarafından bakımı yapılan resmi olmayan bir NixOS Wiki bulunmakta ve nix.dev adresinde bir Nix geliştirme sitesi bulunmaktadır. NixOS Wiki, paket yöneticisi, Nix dili, Nixpkgs ve NixOS hakkında bilgi içerir.

Ayrıca, yeni kurulumlar için paketlerin bölümlerini oluşturmak ve kopyalamak için kullanabileceğiniz bir Nix Dili bulunmaktadır.

Nix'i kurmaya başlamadan önce muhtemelen Nix Kılavuzu'nun tamamını okumak isteyeceksiniz. Terimlerin Tanımları Nix, deklaratif programlamaya dayalıdır - bir yazılım parçasının nasıl yapılacağını değil, ne yapılması gerektiğini tanımlayan programlar oluşturur. Kısacası, deklaratif programlama, duruma dayalı yazılımlardan ve bir sonuca ulaşmak için durumu değiştirmekten kaçınmaya çalışır.

İfadeler. Nix ifadeleri, sonradan alınabilir ve yüklenebilir yazılımın alt bileşenleridir. İfadelerle ilgili fikir, bileşenin zaten tanımlandığı ve kurulduğunda tüm sistemlerde aynı şekilde çalıştığıdır.

Her ifadenin ayrıca bir arama yolu vardır.

Kanallar. Bir Nix kanalı, uzaktan alınabilir ve kurulabilir bir veya daha fazla önceden tanımlanmış Nix ifadesinin belirli bir yoludur. channels.nixos.org adresinde resmi kanalların bir listesi bulunmaktadır.

Kanalların çoğunun sürümleri vardır. Bir kanal abone olunabilir veya abonelikten çıkartılabilir.

Her kanal, kurulduğunda yüklenen indirilebilir içeriğe sahiptir.

Mağaza. Nix, Homebrew ve UNIX'un aksine, paketleri /usr, /bin, /sbin veya /opt gibi standart UNIX dizinlerine kurmaz.

Bunun yerine, tüm kurulu paketleri depolamak için özel bir mağaza oluşturur - tüm kurulu paketler bir birim olarak taşınabilir çünkü tüm mağaza birimi olarak taşınabilir.

Nix, genellikle /etc/nixos/configuration.nix dizinine bir yapılandırma dosyası kurar ve bu dosya normalde macOS Finder'ın gizli dosyalar özelliğini açmadıkça görünmez.

Flake'ler, paketler arasındaki bağımlılıkları tanımlamak ve kontrol etmek için kullanılan deneysel bir Nix özelliğidir. Popüler olmalarına rağmen, Nix Flake'ler hala deneysel ve güçlü belgelendirme eksikliğine sahiptir, bu nedenle kendi riskinizde kullanın.

Çöp Toplama. Bazı programlama ortamlarında olduğu gibi, bir Nix paketini kaldırdığınızda hemen kaldırılmaz. Bunun yerine, Nix Çöp Toplayıcıyı çalıştırırsınız.

Bir çöp toplayıcısını, arka planda sessizce çalışan, kullanılmayan veya artık gerekli olmayan herhangi bir bileşeni temizleyen bir süreç olarak düşünebilirsiniz.

Modern sistemler arasında, Java VM ve Apple'ın Swift ve Objective-C çalışma zamanları da dahil olmak üzere, birçok sistem çöp toplayıcıları kullanır.

Kurulum sonrası Terminal'de nix-collect-garbage komutu ile Nix çöp toplayıcısını her zaman çağırabilirsiniz.

Komut Satırı Araçları Nix kurulumu, Terminal uygulamasından çalıştırabileceğiniz birkaç komut satırı aracı (CLI) içerir. Bunlar şunları içerir:

  • nix-env - Nix kullanıcı ortamlarını manipüle etmek için kullanılır
  • nix-build - Nix ifadelerini derlemek için kullanılır
  • nix-shell - bir Nix ifadesine dayalı etkileşimli bir komut ortamı
  • nix-store - Nix mağazasını manipüle etmek veya sorgulamak için kullanılır

Bu komutlar ve daha fazlası Nix Kılavuzu'nda ayrıntılı olarak açıklanmıştır.

Bir Nix kullanıcı ortamı, basitçe Nix tarafından yüklenen bir yazılım ve araçlar kümesidir.

Nix Kurulumu Nix normalde /nix dizinine kurulur, ancak macOS Catalina'dan sonra, macOS Başlatma Diski'nin kökü salt okunurdur.

Bu nedenle, Catalina'dan sonraki sistemlerde, Nix, Nix mağazasını tutmak için yeni bir birim oluşturacak ve bunu macOS'un gizli Volumes klasöründeki bir birim olarak bağlayacaktır.

Yönetici erişiminiz varsa, yükleyiciyi çalıştırdığınızda yeni bir birim oluşturmak için sudo (süper kullanıcı) izni isteyecektir.

Terminal'de etkileşimli Nix yükleyicisini çalıştırmak için, şunu yazın:

bashCopy code

curl -L https://nixos.org/nix/install | sh

ve Return tuşuna basın.

Yükleyici çalıştırıldığında, yapacağı işler hakkında kısa bir mesaj verir ve nelerin nerede kurulacağını belirtir. Ayrıca, Nix konteyneri ve paket oluşturulurken kullanılan bir UNIX kullanıcı ve UUID oluşturur.

Nix yükleyicisi, /etc/fstab dizinine Nix mağaza birimi için bir referans saklar.

Nix mağaza birimi, masaüstünüzde Finder tarafından monte edilmez - Mac'inizdeki Masaüstü'nde görmeyeceksiniz, ancak yine de orada olacaktır.

Bunun yerine, Nix, bunu Mac'inizdeki Başlatma Diski'nin kökünde "Nix Store" adlı bir dizinde monte eder. Bu dizinin içinde, bir mağaza ve bir var klasörü bulunur.

Mağaza klasörü, NIX'in indirdiği ve kurduğu tüm paketleri ve kanalları içerir, var klasörü bir log klasörü ve nix klasörü içerir, bu da DB, profiller, arka plandaki daemon'a bir bağlantı, kullanıcı havuzları ve diğer parçaları içerir. fstab, UNIX'e tüm dosya sistemlerinin ve birimlerinin nerede bulunduğunu söyleyen bir Dosya Sistemi Tablosu dosyasıdır.

Yükleyiciyi devam etmeye hazır olduğunuzda, Terminal'de bir yönetici şifresi girin ve Return tuşuna basın.

Nix yükleyicisinin çalıştığını göreceksiniz ve çalıştıkça ne oluşturduğunu açıklayacaktır.

Nix yüklenmişse sudo erişimi varsa, ayrıca Mac'inizdeki gizli kullanıcı profil dosyalarına (user ve etc klasörlerine) bazı yapılandırma seçenekleri eklemeye çalışacaktır:

  • /etc/bashrc
  • /etc/profile.d/nix.sh
  • /etc/zshrc
  • /etc/bash.bashrc
  • /etc/zsh/zshrc

Bu profil dosyaları, macOS oturum açtığınızda yüklenecek ve bunlar ortam değişkenlerini ve yüklenmiş yazılımlara yönelik yolları içerecektir.

Son olarak, Nix yükleyicisi, arka planda sessizce Nix mağazasını yöneten bir arka planda işlem veya daemon olan nix-daemon'u kurar.

Yükleyici tamamlandıktan sonra, Terminal'i kapatıp yeniden açmanız veya Terminal'de yeni bir kabuk açmanız gerekecektir, böylece Terminal, tüm yeni Nix yapılandırmalarını yükler.

Yükleyici tamamlandıktan sonra, Terminal'de Nix'in varsayılan paketlerini başlatın ve Nix yüklemesini test etmek için şunu yazın:

bashCopy code

nix-shell -p nix-info --run "nix-info -m"

Yol bilgilerini almak hakkında bir mesaj görmelisiniz ve yerel Nix mağazasında yüklü tüm paketlerin bir listesini göreceksiniz.

Mesajın alt kısmında, mevcut Nix ve Darwin sürüm numarasını, kanal adını ve paketlerin profil dosyasının yolunu göreceksiniz.

Terminal'de ayrıca, nix-env --install komutunu kullanarak herhangi bir mevcut Nix paketini manuel olarak yükleyebilirsiniz, ardından paket adını kullanarak. Örneğin:

bashCopy code

nix-env --install firefox

Paket kaldırma işlemi de aynıdır, ancak nix-env komutuna --uninstall bayrağını eklersiniz.

Ek Kaynaklar Çeşitli iyi üçüncü taraf Nix siteleri bulunmaktadır - onları kontrol etmeyi unutmayın.

Zero-to-nix.com, Nix'i kullanma kılavuzunu içerir ve her bir Nix parçasının ve bunların birbirleriyle nasıl ilişkilendiğinin iyi bir genel bakışını veren bir Başlangıç Kılavuzu ve Kavramlar bölümü içerir.

Determinate.systems, Nix'e odaklanmış bir sitedir ve Terminal tabanlı kurulumu kullanmak istemiyorsanız bir Nix kurulumcuya sahip bir Nix kurulumcuya sahiptir.

Ryan Yin'in Nix ve Flake Kitabı, başlangıç ​​seviyesindeki kullanıcılar için çok sayıda yararlı Nix ile ilgili bilgi dolu bir çevrimiçi öğretici ve GitHub deposudur.

nix-darwin deposu, Nix paket yöneticisinin Darwin (macOS) portu için tüm modülleri, paketleri ve belgeleri içerir.

Nixpacks, herhangi bir dosya dizinini alıp yeniden kullanım için konteynerleştirebilen bir yardımcı programdır.

Son olarak, Open Container Initiative adresinde açık konteyner girişimi web sitesini ziyaret etmeyi unutmayın.

Nix'in Avantajları ve Dezavantajları Öğrenme eğrisini aştıktan sonra, Nix oldukça etkili ve kullanışlı olabilir. Taşınabilir konteynerlerin yapılandırılması ve yeniden kurulması yeteneği çok güçlüdür.

Herhangi bir ortam ve aracı yapılandırabilir ve ardından çoğu sistemde yeniden dağıtım için paketleyebilirsiniz.

Kendi özel Nix paketlerinizi ve konteynerlerinizi oluşturabilme ve ardından yeniden kullanabilme yeteneği, yeni bir makine yapılandırmanız gerektiğinde çok zaman kazandırır.

Paket yöneticisi olarak Nix'in ana dezavantajı, artan karmaşıklık ve öğrenme eğrisidir. Ayrıca, şu anda bir Windows sürümü bulunmamaktadır.

Homebrew, hala Nix'ten daha basittir, ancak özel kurulum kabuk betikleri yazmadıkça, Homebrew taşınabilirlik eksikliğine sahiptir. Her olası sistem için özel kurulum kabuk betikleri yazmaya çalışmak pratik değildir.

Serkan Alçay

Yazmayı ve araştırmayı çok seven profesyonel bir editör

Yorum yap

Yorumlar

Bu yazı için henüz bir yorum yapılmamış. İlk yorumu yapan sen ol!

Çerezler Hakkında Bilgi Siteyi ziyaretiniz sırasında kişisel verileriniz siteyi kullanımınızı analiz etmek, reklamları kişiselleştirmek ve sosyal medya özellikleri sağlamak amacıyla çerezler aracılığıyla işlenmektedir. Daha fazla bilgi için Çerez Aydınlatma Metni’ni okuyabilirsiniz.