Skip to content

Ubuntu Server - Start Your Development Enviroment

Development Tools

  • build-essential: A meta-package that installs essential development tools like gcc, g++, make, pkg-config, etc.
  • automake: A tool for generating Makefile.in files from Makefile.am.
  • autoconf: A tool for generating configure scripts from configure.ac.
  • libtool: A generic library support script used for creating and managing shared libraries.

Version Control

  • git: A distributed version control system for tracking changes in source code.

Build Systems

  • cmake: A cross-platform, open-source build system.
  • ninja: A small build system similar to make, designed for speed and simplicity.

Package Management (Optional)

  • pkg-config: A tool to retrieve information about installed libraries in the system.

Dependency Management (Optional)

  • meson: A fast and user-friendly build system focused on simplicity.

Compiler and Libraries

  • gcc: GNU Compiler Collection, a compiler for C, C++, and other languages.
  • g++: GNU Compiler Collection for C++.
  • libstdc++-dev: Development files for the GNU Standard C++ Library.
  • libc6-dev: Development files for the GNU C Library.

Additional Libraries (Depends on the packages you're building)

  • You might need specific libraries depending on the software you intend to build. These could be libraries like libssl-dev, libxml2-dev, libpq-dev, etc.

Please note that the specific packages required can vary depending on the software you want to build. Some projects might require additional dependencies not listed here

We encourage you to explore the user guides and configurations for each tool in our wiki to help you get started with building your preferred software.

For Ubuntu and Debian-based systems, use the following commands to install the necessary packages:

apt-get update
apt-get install -y \
    apt \
    aptitude \
    pigz \
    unrar \
    unzip \
    p7zip-full \
    xz-utils \
    parallel \
    binwalk \
    build-essential \
    cmake \
    make \
    autoconf \
    automake \
    pkg-config \
    libssl-dev \
    git \
    tcl \
    tcllib \
    nginx \
    python3-certbot-nginx \
    letsencrypt \
    mysql-server \
    libmysqlclient-dev \
    python3 \
    python3-pip \
    perl \
    rustc \
    g++ \
    golang-go \
    maven \
    lua5.3 \
    liblua5.3-dev \
    openssh-server \
    sshfs \
    vim \
    nano \
    libgtk-3-dev \
    binutils \
    gcc-multilib \
    gdb \
    debootstrap \
    schroot \
    libjson-c-dev \
    libyaml-dev \
    libxml2-dev \
    libpcre3-dev \
    libsqlite3-dev \
    libpq-dev \
    libncurses5-dev \
    libevent-dev \
    libreadline-dev \
    libglib2.0-dev \
    libsqlite3-dev \
    lftp \
    ftp \
    npm \
    nodejs \
    gnutls-dev \
    libgnutls30 \
    libgnutls-openssl-dev \
    libfuse-dev \
    apktool \
    android-sdk \
    default-jre \
    default-jdk \
    openjdk-11-jre \
    openjdk-11-jdk \
    libssl-dev \
    software-properties-common \
    python3-software-properties \
    ssmtp \
    mailutils \
    cryptsetup \
    aespipe \
    ca-certificates \
    gnupg \
    adb \
    fastboot \
    pciutils \
    lsof \
    strace \
    net-tools

Happy programming from myself and my best friend(s) to YOU all of you who are reading this!!

My friends are unknown to YOU! Welcome to this website and Happy Building!

Always remember, it doesn't matter what distro you are using! i

The kernels are the same. Use the one you like! Once you find the right one, you'll never change again!

- Author: Patrik Gissleholm