dagcevresi
Yeni Üye
- Katılım
- 13 May 2025
- Mesajlar
- 4
- Tepkime puanı
- 0
Bu kılavuz, NixOS'un başlıca paket yöneticilerini ele alıyor.
Nix-Shell, geçici paket denemeleri için idealdir. Bu araç, terminal oturumu boyunca paketleri indirip çalıştırır. Örneğin, nadiren kullandığınız `neofetch` veya `fastfetch` gibi uygulamaları sisteminize kalıcı olarak eklemeden önce test etmek için birebirdir.
`fastfetch` örneği: `nix-shell -p fastfetch` komutu ile başlayın. Birden fazla paketi aynı anda indirmek için `nix-shell -p fastfetch htop vim` gibi bir komut kullanın.
Sisteminizi etkileyebilecek yazılımları izole bir ortamda test etmek için `--purge` seçeneğini kullanın. Örnek: `nix-shell -p python3 --purge`
Alternatif olarak, `zsh` veya `bash` kabukları ile çalıştırmak için `nix-shell -p fastfetch zsh -i zsh` komutunu deneyebilirsiniz. Nix-Shell'in kapsamlı açıklaması uzun süreceğinden, diğer araçlara geçelim.
Nix-env, basit paket yönetimi için elverişlidir. Paket yüklemek için `nix-env -iA nixos.paket-adi` komutunu kullanın. Örneğin: `nix-env -iA nixos.fastfetch`.
Yüklü paketleri görüntülemek için `nix-env -q` komutunu, bir paketi silmek için ise `nix-env -e paket-adi` komutunu kullanın. Örneğin: `nix-env -e fastfetch`. Paket adlarının tam olarak yazılması önemlidir. `fastfetch` ile `fastfetch-unstable` farklı paketlerdir. Yüklü paket listesini kontrol edin.
Configuration.nix ile sistem çapında paket yönetimi yapılabilir. Bu, çoğu kullanıcının en sık karşılaştığı yöntemdir.
İki ana yöntem vardır: `programs.enable` ve `environment.systemPackages`. `programs.enable` yönteminde, `programs.uygulama-adi.enable = true;` veya `services.servis-adi.enable = true;` satırlarını `/etc/nixos/configuration.nix` dosyasına ekleyin. Örneğin: `programs.hyprland.enable = true;` veya `services.xserver.enable = true;`. Bazı uygulamalar, özellikle masaüstü ortamları ve pencere yöneticileri, ek konfigürasyon gerektirebilir.
`environment.systemPackages`, kurulacak paketleri listelemek için kullanılır. Bu bölüm Configuration.nix dosyasında mevcuttur. Paket adlarını buraya eklemek yeterlidir.
```
environment.systemPackages = with pkgs; [
"git"
"vim"
"home-manager"
"hyprland"
];
```
veya
```
environment.systemPackages = with pkgs; {
hyprland;
home-manager;
vim;
};
```
Değişiklikleri etkinleştirmek için `nixos-rebuild switch` komutunu çalıştırın. Paketleri kaldırmak için ilgili satırları silin veya başına `#` işareti koyup sistemi yeniden oluşturun.
Önemli not: `nix-env` ile kurulu bir paketi Configuration.nix ile tekrar kurmaya çalışmak hata verebilir. Önce `nix-env` ile kaldırın, sonra Configuration.nix'e ekleyin.
Eski yapılandırmaları temizlemek için `nixos-collect-garbage -d` komutunu kullanın. Otomatikleştirme için aşağıdaki satırları Configuration.nix'e ekleyin:
```
systemd.services.nix-collect-garbage = {
description = "Nix artık temizleme";
wantedBy = ["multi-user.target"];
serviceConfig.ExecStart = "/usr/bin/nix-collect-garbage -d";
timerConfig.OnBootSec = "300";
timerConfigOnUnitActiveSec = "604800";
};
```
Bu, sistemi her başlatıldığında 5 dakika sonra ve aktif kaldıktan 1 hafta sonra eski yapılandırmaları temizler. İhtiyaçlarınıza göre bu zaman dilimlerini değiştirebilirsiniz.
Nix-Shell, geçici paket denemeleri için idealdir. Bu araç, terminal oturumu boyunca paketleri indirip çalıştırır. Örneğin, nadiren kullandığınız `neofetch` veya `fastfetch` gibi uygulamaları sisteminize kalıcı olarak eklemeden önce test etmek için birebirdir.
`fastfetch` örneği: `nix-shell -p fastfetch` komutu ile başlayın. Birden fazla paketi aynı anda indirmek için `nix-shell -p fastfetch htop vim` gibi bir komut kullanın.
Sisteminizi etkileyebilecek yazılımları izole bir ortamda test etmek için `--purge` seçeneğini kullanın. Örnek: `nix-shell -p python3 --purge`
Alternatif olarak, `zsh` veya `bash` kabukları ile çalıştırmak için `nix-shell -p fastfetch zsh -i zsh` komutunu deneyebilirsiniz. Nix-Shell'in kapsamlı açıklaması uzun süreceğinden, diğer araçlara geçelim.
Nix-env, basit paket yönetimi için elverişlidir. Paket yüklemek için `nix-env -iA nixos.paket-adi` komutunu kullanın. Örneğin: `nix-env -iA nixos.fastfetch`.
Yüklü paketleri görüntülemek için `nix-env -q` komutunu, bir paketi silmek için ise `nix-env -e paket-adi` komutunu kullanın. Örneğin: `nix-env -e fastfetch`. Paket adlarının tam olarak yazılması önemlidir. `fastfetch` ile `fastfetch-unstable` farklı paketlerdir. Yüklü paket listesini kontrol edin.
Configuration.nix ile sistem çapında paket yönetimi yapılabilir. Bu, çoğu kullanıcının en sık karşılaştığı yöntemdir.
İki ana yöntem vardır: `programs.enable` ve `environment.systemPackages`. `programs.enable` yönteminde, `programs.uygulama-adi.enable = true;` veya `services.servis-adi.enable = true;` satırlarını `/etc/nixos/configuration.nix` dosyasına ekleyin. Örneğin: `programs.hyprland.enable = true;` veya `services.xserver.enable = true;`. Bazı uygulamalar, özellikle masaüstü ortamları ve pencere yöneticileri, ek konfigürasyon gerektirebilir.
`environment.systemPackages`, kurulacak paketleri listelemek için kullanılır. Bu bölüm Configuration.nix dosyasında mevcuttur. Paket adlarını buraya eklemek yeterlidir.
```
environment.systemPackages = with pkgs; [
"git"
"vim"
"home-manager"
"hyprland"
];
```
veya
```
environment.systemPackages = with pkgs; {
hyprland;
home-manager;
vim;
};
```
Değişiklikleri etkinleştirmek için `nixos-rebuild switch` komutunu çalıştırın. Paketleri kaldırmak için ilgili satırları silin veya başına `#` işareti koyup sistemi yeniden oluşturun.
Önemli not: `nix-env` ile kurulu bir paketi Configuration.nix ile tekrar kurmaya çalışmak hata verebilir. Önce `nix-env` ile kaldırın, sonra Configuration.nix'e ekleyin.
Eski yapılandırmaları temizlemek için `nixos-collect-garbage -d` komutunu kullanın. Otomatikleştirme için aşağıdaki satırları Configuration.nix'e ekleyin:
```
systemd.services.nix-collect-garbage = {
description = "Nix artık temizleme";
wantedBy = ["multi-user.target"];
serviceConfig.ExecStart = "/usr/bin/nix-collect-garbage -d";
timerConfig.OnBootSec = "300";
timerConfigOnUnitActiveSec = "604800";
};
```
Bu, sistemi her başlatıldığında 5 dakika sonra ve aktif kaldıktan 1 hafta sonra eski yapılandırmaları temizler. İhtiyaçlarınıza göre bu zaman dilimlerini değiştirebilirsiniz.