Diğer cevaplarda eksik olan önemli bir nokta:
Bir paket yöneticisi kullanmak, hangi kütüphane sürümlerini kullandığınızı belirten ve yapılandırma bilgilerinin gerçekten doğru olduğundan emin olan bir yapılandırmaya sahip olmak anlamına gelir .
Hangi kitaplıkları kullandığınızı ve hangi sürümü kullandığınızı bilmek, eğer:
- kritik bir hata / güvenlik boşluğu nedeniyle bir kütüphaneyi güncellemeniz gerekir;
- ya da sadece ilan edilen güvenlik boşluğunun sizi etkileyip etkilemediğini kontrol etmeniz gerekir.
Ayrıca, gerçekten güncelleme yaptığınızda, paket yöneticisi (genellikle) geçişli bağımlılıkların gerektiği gibi güncellendiğinden emin olur.
Oysaki bir lib
klasörde, sadece bir kaç (muhtemelen ikili ve muhtemelen değiştirilmiş) dosyaya sahipsiniz ve nereden geldiklerini ve hangi sürümden olduklarını tahmin etmeniz gerekecek (veya bazı README’ye güvenebilir, bu doğru olabilir veya olmayabilir). ).
Diğer puanlarınızı ele almak için:
Paketleri yönetmek için harici bir araca gerek yok.
Doğru, ancak a) bir yazılım geliştiricisi olarak yine de bir çok araç yüklemeniz gerekir, bu yüzden bir tane daha farketmez, ve b) genellikle herhangi bir alanda yalnızca bir veya birkaç paket yöneticisi vardır (Maven / Gradle for Java, JS / TypeScript, vb. için npm, bu yüzden onlarca kurmanız gerekmiyor.
İnşa etmek için internet bağlantısı gerekmez.
Tanıdığım tüm paket yöneticileri, gerekli bağımlılıkları indirdikten sonra (projenin kendisini indirdikten hemen sonra gerçekleşebilecek olan) çevrimdışı çalışır.
Daha hızlı yapı (paket kontrolü yok).
Muhtemelen doğru, ancak çevrimdışı paket kontrolünün önemli miktarda zaman alacağı düşünülüyor (sadece bazı sürüm numaraları karşılaştırılıyor). Bir çevrimiçi çek biraz zaman alabilir, ancak istenirse (varsayılan olarak bile açıksa - Maven örneğin bırakma sürümleri için güncellemeleri kontrol eder hiç) o kapatılabilir.
Daha basit ortamlar (daha az bilgi gerekli).
Doğru, ancak yukarıda açıklandığı gibi, bir lib
klasör de bilgi gerektirir. Ayrıca, yukarıda açıklandığı gibi, muhtemelen yalnızca zaten bileceğiniz bir avuç farklı paket yöneticisi ile çalışacaksınız.