Package manager adalah perangkat lunak atau tools yang digunakan untuk proses otomatisasi melakukan penginstalan, upgrading, konfigurasi dan menghapus program komputer untuk sistem operasi atau library dengan tuntas dengan menggunakan command tertentu. Package manajer menangani package, mendistribusikan perangkat lunak dan data dalam file arsip. Package berisi metadata, seperti nama software, deskripsi, version number, vendor, checksum dan daftar dependensi yang diperlukan agar software dapat berjalan dengan baik
Dalam dunia pemrograman juga terdapat berbagai macam package manager yang dapat digunakan guna menunjang proses development agar menjadi lebih cepat. Sebab kerap kali fitur yang kita inginkan sudah dibuat oleh orang lain menjadi sebuah library, sehingga kita tidak perlu membuat fitur yang serupa dan dapat menggunakan library yang sudah ada untuk diintegrasikan pada project kita.
Berikut beberapa nama package manager dan bahasa pemrograman yang menggunakannya, diantaranya:
Cabal (Haskell) : http://www.haskell.org/cabal
Composer (PHP) : https://getcomposer.org
Go Nuts (Go) : http://www.gonuts.io
Gradle (Groovy dan JVM language) : http://www.gradle.org
CPAN (Perl) : http://www.cpan.org
PIP / PyPI (Python) : https://pip.pypa.io
Bower (Js Css) : http://bower.io
NuGet (.NET Framework) : https://www.nuget.org
CocoaPods (Objective-C dan RubyMotion projects) : http://cocoapods.org
LuaRocks (Lua) : http://luarocks.org
Maven (Java) : http://maven.apache.org
npm (Node.js) : https://www.npmjs.org
RubyGems (Ruby) : https://rubygems.org
sbt (Scala) : http://www.scala-sbt.org
leiningen (Clojure) : http://leiningen.org
Cara menggunakan package manager di masing-masing bahasa pemrograman hampir serupa. Umumnya dengan membuat sebuah file berisi penentuan library apa saja yang dibutuhkan untuk aplikasi yang dikembangkan. File tersebut lantas di simpan bersamaan dengan project kita dan menjadi acuan bila hendak melakukan pembaharuan library.