Package Managers — Terminal

Package Manager Package manager adalah tool untuk menginstal, mengupdate, dan mengelola software dan library. Sebagai developer, kamu akan menggunakan beberapa

Package Manager

Package manager adalah tool untuk menginstal, mengupdate, dan mengelola software dan library. Sebagai developer, kamu akan menggunakan beberapa package manager sekaligus.

Package Manager untuk JavaScript/Node.js

npm (Node Package Manager)

# Inisialisasi project baru
npm init -y

# Install package
npm install react
npm install -D vitest  # devDependency

# Install semua dependency dari package.json
npm install
npm ci  # clean install (lebih cepat, untuk CI/CD)

# Update package
npm update react
npm update  # update semua

# Hapus package
npm uninstall react

# Jalankan script dari package.json
npm run dev
npm run build
npm test

# Lihat package yang outdated
npm outdated

# Audit keamanan
npm audit
npm audit fix

pnpm (Performant npm)

# Install pnpm
npm install -g pnpm

# Penggunaan mirip npm
pnpm install
pnpm add react
pnpm remove react
pnpm run dev

# Keunggulan: disk space hemat (hard link)
# dan install lebih cepat

yarn

yarn install
yarn add react
yarn remove react
yarn dev

Package Manager untuk Sistem Operasi

macOS — Homebrew

# Install Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# Install program
brew install node
brew install git
brew install ripgrep

# Update semua
brew update && brew upgrade

# Cari package
brew search python

# Info package
brew info node

# Hapus
brew uninstall ripgrep

# Bersihkan cache
brew cleanup

Ubuntu/Debian — apt

# Update daftar package
sudo apt update

# Install
sudo apt install nodejs
sudo apt install nginx

# Upgrade semua
sudo apt upgrade

# Hapus
sudo apt remove nginx

# Cari
apt search mysql

# Info
apt show nodejs

Package Manager untuk PHP — Composer

# Install dependency dari composer.json
composer install

# Tambah package baru
composer require laravel/framework

# Tambah dev dependency
composer require --dev phpunit/phpunit

# Update
composer update

# Autoload
composer dump-autoload

Package Manager untuk Python — pip

# Install package
pip install requests
pip install -r requirements.txt

# Daftar package terinstal
pip list
pip freeze > requirements.txt

# Upgrade
pip install --upgrade requests

Versi & Semver

Package biasanya menggunakan Semantic Versioning (semver):

MAJOR.MINOR.PATCH
  2  .  1  .  3
Part Kapan berubah
MAJOR Breaking change
MINOR Fitur baru (backward compatible)
PATCH Bug fix

Di package.json:

{
  "dependencies": {
    "react": "^18.2.0",
    "lodash": "~4.17.0",
    "exact-pkg": "1.0.0"
  }
}

Lock Files

Lock file memastikan semua developer dan CI menggunakan versi yang sama persis:

Package Manager Lock File
npm package-lock.json
pnpm pnpm-lock.yaml
yarn yarn.lock
Composer composer.lock

Selalu commit lock file ke Git!