Ana içeriğe geç

Paket Yöneticisi

İngilizcesi
Package Manager
Okunuşu
pekıc menıcır
Güncellendi 2 dk okuma

Bu sayfayı paylaşın

Bağlantıyı gönderin, tanımı bağlantısıyla birlikte alıntılayın ya da kendi sitenizde bir kart olarak gösterin.

https://softwaredictionary.org/tr/terimler/package-manager

Kısaca

Paket yöneticisi, yazılım paketlerini ve onların bağımlılıklarını kuran, güncelleyen ve kaldıran, sürümleri otomatik olarak çözen bir araçtır.

Paket yöneticisi (package manager) nedir?

Günümüz yazılımları çok sayıda paketten kurulur ve bunların her biri başkalarına bağımlı olabilir. Paket yöneticisi, npm için package.json ya da Python için pyproject.toml gibi, projenin neye ihtiyaç duyduğunu anlatan listeyi okur; doğru sürümleri npmjs.com ya da PyPI gibi bir registry'den indirir ve herkesin gereksinimlerini karşılayan bir sürüm kümesi bulur.

İki geniş türü vardır. Dil paket yöneticileri bir projeye kütüphane kurar: JavaScript için npm, pnpm ve Yarn; Python için pip ve uv; Rust için Cargo; Java için Maven ve Gradle; .NET için NuGet ve PHP için Composer. Sistem paket yöneticileri ise bir makineye program kurar: Linux'ta apt ve dnf, macOS'ta Homebrew, Windows'ta winget.

package-lock.json ya da Cargo.lock gibi bir lockfile (kilit dosyası), dolaylı olanlar dahil kurulan her paketin tam sürümünü kaydeder; böylece her geliştirici ve her derleme aynı sonucu alır. Manifest'teki sürüm aralıkları genellikle anlamsal sürümlemeyi (semantic versioning) izler; bu da uyumlu hata düzeltmelerini içeri alırken kırıcı değişiklikleri dışarıda tutar.

Sık yapılan bir yanlış, popüler bir paketi kurmanın her zaman güvenli olduğunu düşünmektir. Paketler makinenizde kod çalıştırır; saldırganlar da tedarik zinciri saldırılarında birbirine benzeyen adlarla paket yayımlar ya da terk edilmiş paketleri ele geçirir. Yeni bağımlılıkları incelemek, lockfile'ı commit'lemek ve npm audit gibi denetim araçları çalıştırmak riski azaltır.

Önemli noktalar

  • Paket yöneticisi paketleri kurar ve bağımlılıklarını çözer.
  • Bir manifest okur ve npm ya da PyPI gibi bir registry'den indirir.
  • Dil yöneticileri kütüphaneleri, sistem yöneticileri programları kurar.
  • Lockfile'lar tam sürümleri sabitler; böylece her kurulum tekrarlanabilir olur.
  • Paketler saldırı aracı olabilir; bu yüzden bağımlılıkları inceleyin ve denetleyin.

Örnek

Günlük paket yöneticisi komutlarıbash
# JavaScript (npm)
npm install express          # add a dependency and update package.json and the lockfile
npm ci                       # install exactly what the lockfile says (CI)
npm outdated                 # see newer versions

# Python (pip in a virtual environment)
python -m venv .venv && source .venv/bin/activate
pip install requests

# Rust (Cargo)
cargo add serde

# System packages
sudo apt install git         # Debian / Ubuntu
brew install node            # macOS

Sık sorulan sorular

Lockfile nedir?

Bağımlılıkların bağımlılıkları dahil kurulan bütün paketlerin tam sürümlerini kaydeden bir dosyadır. Onu commit'lemek, herkesin o günün en yeni sürümleri yerine birebir aynı kurulumu almasını sağlar.

npm, pnpm ve Yarn arasındaki fark nedir?

Üçü de paketleri package.json kullanarak npm registry'sinden kurar. pnpm her paketin tek bir kopyasını projeler arasında paylaşarak disk alanı kazandırır; Yarn ve pnpm de hız, workspace desteği ve node_modules klasörünü ne kadar katı düzenledikleri açısından npm'den ayrılır.

Paket registry'si nedir?

Paketlerin yayımlandığı ve indirildiği sunucudur: JavaScript için npmjs.com, Python için PyPI, Rust için crates.io gibi. Şirketler iç paketleri için çoğu zaman özel registry'ler çalıştırır.

İlgili sayfalar

Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin

Daha fazla

Ayarlar