Skip to content

Instantly share code, notes, and snippets.

@zudsniper
Last active January 19, 2024 11:53
Show Gist options
  • Save zudsniper/46498eb019c29341a1555ae5bc36ef0b to your computer and use it in GitHub Desktop.
Save zudsniper/46498eb019c29341a1555ae5bc36ef0b to your computer and use it in GitHub Desktop.
πŸ“¦ The 'essential packages' for Debian 11 "Bullseye"

Essential Debian Packages πŸ“¦

A curated list of essential packages for Debian 11 'Bullseye' for developers and system administrators.

Prerequisites

Source Repositories

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.

deb_add_sources.sh

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.

Package List

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 to python3.
  • 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.

Why This List?

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.

#!/bin/bash
# deb_add_sources.sh v1.0.0
# -------
# copy all of this and paste it into your terminal to add the repos then run `sudo apt update -y && sudo apt upgrade -y`
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment