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.list
Make 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/python
topython3
.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.