A curated list of essential packages for Debian 11 'Bullseye' for developers and system administrators.
These packages may be included only in the contrib or non-free source repo for apt. These must be added manually in most debian distros. Here is a "1-liner" that will add them, respecting the current version of debian installed.
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak && \
awk '!a[$0]++' /etc/apt/sources.list | while read line; do
if echo "$line" | grep -q "^deb " && echo "$line" | grep -vq " contrib " && echo "$line" | grep -vq " non-free "; then
echo "$line contrib non-free" | sudo tee -a /etc/apt/sources.list.tmp;
else
echo "$line" | sudo tee -a /etc/apt/sources.list.tmp;
fi
done && sudo mv /etc/apt/sources.list.tmp /etc/apt/sources.listMake sure to update sources after this!
sudo apt update -y && sudo apt upgrade -y
This list includes a combination of tools recommended by the community, personal preferences, and general consensus on what constitutes a "must-have" in a Debian setup. The goal is to provide a starting point for building a robust, versatile environment for software development and system management.
this is a useful list in congress with FAI.me, the Fully Automated Installer--or FAI Project's free tool to create customized automated linux installation media.
curl jq git fail2ban net-tools snapd vim terminator build-essential python3 python-is-python3 htop tmux openssh-server ca-certificates software-properties-common apt-transport-https gnupg lsb-release wget
curl: A tool for transferring data with URLs. Useful for downloading files, making API calls, etc.jq: A lightweight and flexible command-line JSON processor. It's like sed for JSON data.git: A distributed version-control system for tracking changes in source code during software development.fail2ban: ban IP addresses which attempt to login over and over again from the same IP.net-tools: Provides important networking tools for system networking setup and analysis.snapd: Service and tools for managing snap packages.vim: A highly configurable text editor built to enable efficient text editing.terminator: A terminal emulator with support for multiple resizable terminal panels.build-essential: A meta-package that installs GCC, make, and other utilities for compiling software.python3: The latest version of the Python programming language.python-is-python3: A package that symlinks/usr/bin/pythontopython3.htop: An interactive process viewer, much like the older 'top', but with additional features.tmux: A terminal multiplexer, allowing multiple terminal sessions to be accessed simultaneously in a single window.openssh-server: Provides the OpenSSH server, allowing secure remote access to your system.ca-certificates: Common CA certificates, necessary for SSL/TLS connections.software-properties-common: Provides useful scripts for adding apt repositories (like add-apt-repository).apt-transport-https: Allows the use of 'https' in the apt transport for secure package downloads.gnupg: GNU privacy guard - a free implementation of the OpenPGP standard for encrypting and signing data and communications.lsb-release: Provides information about the Linux Standard Base version of the system.wget: A network downloader that supports HTTP, HTTPS, and FTP protocols.
This list is designed to cover a broad range of tasks and requirements for system setup and software development. From system monitoring (htop) to secure file transfer (curl), and from code management (git) to text editing (vim), these packages form the backbone of a productive Debian environment.
Remember, this list is a suggestion and should be tailored to fit individual needs and preferences.