## Package Management

Installing software in Linux. We don't google "download .exe". We use Repositories (App Stores).

### APT (Debian/Ubuntu/Kali)
**Advanced Package Tool**.
1.  `apt update`: Refreshes the list of available software. (Does NOT install updates).
    *   *Analogy*: Checking the catalogue to see what is new.
2.  `apt upgrade`: Actually installs the newer versions of installed packages.
3.  `apt install [package]`: Installs a tool.
    *   `apt install nmap`
    *   `apt install python3`
4.  `apt remove [package]`: Uninstalls.

### Repositories
Your OS looks in `/etc/apt/sources.list`.
If you try to install "tool_xyz" and it says "Unable to locate package", your sources.list might be missing the repository that contains it.

### Other Managers
*   **YUM / DNF**: Used by Red Hat / CentOS / Fedora.
    *   `dnf install httpd`
*   **Pacman**: Used by Arch Linux.
    *   `pacman -S firefox`
*   **Snap**: Universal packages.
    *   `snap install discord`

### Compile from Source (Github)
Sometimes a tool isn't in Apt. You must build it.
1.  `git clone https://github.com/user/tool.git`
2.  `cd tool`
3.  Look for `README.md`!
4.  Usually: `./configure`, `make`, `make install` OR `pip install -r requirements.txt` (Python).