Das Betriebssystem UNIX ist ursprünglich von Softwareentwicklern für Softwareentwickler geschaffen worden. D.h. Unix ist eine riesige Software-Entwicklungsumgebung und viele Werkzeuge für den Hausgebrauch sind schon vorhanden.

Selbst, wenn man das weiß, ist es immer wieder verblüffend, was alles an Sprachen und Werkzeugen als freie Software zur Verfügung steht - nur einen apt/dnf/zypper/pacman Befehl entfernt.

Zum Stöbern lohnt es sich, einen der grafischen Paketmanager zu benutzen.

Auch wenn man sich nicht für exotische Programmiersprachen interessiert, sind die hier vorgeschlagenen Pakete sinnvoll, weil man sie entweder für die Entwicklung von Webseiten konkret braucht oder weil es einfach gut ist, wenn man sie griffbereit hat.

Programmiersprachen

In den Standard Repositories sind alle gängigen - und ein ganzer Haufen recht exotischer - Programmiersprachen enthalten.

Man kann davon ausgehen, dass einige der Werkzeuge schon installiert sind, sei es, weil sie im Basispaket für Softwareentwicklung enthalten sind, sei es weil bestimmte Komponenten des Systems das Werkzeug brauchen.

Interpretierte Programmiersprachen braucht auch zur Ausführung, also zur Laufzeit, ihren "Interpreter". Viele Interpreter sind daher meist schon vorinstalliert, weil irgendeine Komponente des Betriebssystems sie braucht. Manche davon mögen zu Anfang nur in einer Basisversion installiert sein. Dann wird der volle Funktionsumfang bei der manuellen Installation nachgeladen.

gcc g++
Der "C" und der "C++" Compiler von GNU.
flex, bison
Die Open Source Nachfolger vom AT&T Pärchen lex und yacc. für die Entwicklung von Compilern oder Compiler ähnlichen Programmen. (lex steht für "Lexical Analyser" und yacc für "Yet another Compiler Compiler).
gdb
Der GNU Debugger
python
Interpretierte Programmiersprache. Muss installiert sein, weil viele OS Komponenten damit arbeiten. Das Werkzeug pip ist ein Paketmanager für Python.
perl
Interpretierte Programmiersprache. Geniale Sprache für Nerds. Sollte installiert sein, weil einige Fremdpakte damit arbeiten.
php
Interpretierte Programmiersprache. Sprache bei der Web-Entwicklung für Programme auf dem Server. Um PHP Programme ohne Webserver schreiben und ausführen zu können, braucht man das php-cli, das "PHP Command Line Interface".
Java
Interpretierte Programmiersprache. Java wird zwar nicht mehr so häufig verwendet, aber es gibt noch viele in Java geschrieben Programme. Daher sollte die Java Runtime sowieso installiert sein. Wer etwas mit Java Programmierung zu tun hat, kann sich das offene JDK, "Java Development Kit", herunterladen.

Entwicklerwerkzeuge

Hier gilt das eben gesagt genauso. Was auch immer man braucht: Es ist wahrscheinlich im Repository zu finden.

Die in den Spickzetteln gezeigte Auswahl umfasst Dinge, die man "immer mal brauchen kann". Sei es, weil man sie direkt benutzen will, sei es, weil irgendwelche Fremdsoftware darauf angewiesen ist.

make
Der Standard unter Unix zum Bauen von Software
automake, autoconf
Automatisiertes Bauen mit make. Gibt es schon ewig, wird aber immer noch eingesetzt.
cmake
Alternative zu make. Mächtiger, komplexer und seltener im Einsatz.
git
Das aktuell am meisten verwendete System zur Versionskontrolle. Ohne git geht gar nichts. Auch für Nicht-Entwickler interessant, weil man damit seine Verzeichnisse lokal versionieren kann..
cvs, subversion
Etwas in die Tage gekommene Systeme zur Versionskontrolle. Es gibt aber immer noch Projekte, die damit arbeiten.
doxygen
Der Vater aller Dokumentationswerkzeuge. Funktioniert immer noch und kann auf alles Mögliche losgelassen werden.
geany
Einfache und wirklich leichtgewichtige IDE. Für Leute, die schnell mal was programmieren wollen.
nodejs
JavaSript Laufzeit-System außerhalb eines Browsers. Das braucht man auch, wenn man selber nicht damit arbeitet, weil viele Plugins darauf aufbauen.

Wie gesagt, eine Auswahl.

Werkzeuge aus anderen Quellen

Fast immer ist man mit der Software aus den Repositories sehr gut bedient.

Unter bestimmten Umständen ist es aber sinnvoll, Software direkt vom Produzenten zu beziehen.

Software nicht im Repository

Manche Software wird von den Produzenten so schnell weiter entwickelt, dass in den Repos nur eine mehr oder weniger veraltete Version vorhanden ist. Meistens ist das gar nicht so wichtig, aber manchmal möchte oder muss man mit der aktuellsten Version arbeiten.

In diesen Fällen muss man sich die Software direkt vom Hersteller herunterladen und installieren. Der Preis dafür ist allerdings, dass man sich danach auch um die Aktualisierungen selber kümmern muss, wenn die Software automatische Updates nicht selber verwaltet.

Beispiele:

Es gibt Software, die man gerne hätte, die sich aber - obwohl sie frei ist - nicht im Repository der aktuell installierten Distribution befindet. Auch diese Software muss man sich dann aus dem Netz besorgen.

Beispiele:

Unfreie Software

Grundsätzlich ist in den Repositories nur freie Software enthalten. (Ausnahme sind Treiber, Codecs, etc.). Unfreie Software gibt es auch dann nicht, wenn der Hersteller sie für GNU/Linux bereitstellt und kein Geld dafür haben will.

Beispiele:


Kommandos

Kommandos für die gängigen Paketmanager

Kommandos für Debian (Ubuntu)

Anweisungen für den Paketmanager apt

Programmiersprachen

GNU

C / C++ installieren

sudo apt install gcc g++

Lex / Yacc

sudo apt install flex bison

GNU Debugger

sudo apt gdb
Skripsprachen

Python: Stand heute (Okt. 2022) wird noch zwischen Python-3 und Python-2 unterschieden. Das wird sich vermutlich ändern.

Python 3 installieren

sudo apt install python3

Mache aus Python3 Python

sudo apt install python-is-python3

Python Paketmanager installieren.

sudo apt install pip

Perl installieren

sudo apt install perl

PHP Interpreter installieren

sudo apt install php-cli

Debian und Ubuntu installieren Apache gleich mit, wenn man nur ... install php eingibt.

Java

Das Standard-JDK installieren

sudo apt install default-jdk default-jdk-doc

Die aktuelle Version ist JDK-17.

Werkzeuge

Bauen

make

sudo apt install make

automake / autoconf

sudo apt install automake autoconf

cmake

sudo apt install cmake
Versionskontrolle

git

sudo apt install git

subversion

sudo apt install subversion

CVS

sudo apt install cvs
Sonstiges

doxygen

sudo apt install doxygen doxygen-gui

geany

sudo apt install geany

nodejs installieren

sudo apt install nodejs

Es wird nicht unbedingt die neueste Version installiert.

npm (node Paketmanager) installieren

sudo apt install npm

Unter Debian werden zusammen mit npm jede Menge kleiner Bibliotheken und Apps mit installiert.

Kommandos für Fedora (RedHat)

Anweisungen für den Paketmanager dnf

Programmiersprachen

Basis Entwicklungswerkzeuge installieren (nur Fedora)

sudo dnf groupinstall "C Development Tools and Libraries"
GNU

C / C++ installieren

sudo dnf install gcc g++

Lex / Yacc

sudo dnf install flex bison

GNU Debugger

sudo dnf gdb
Skriptsprachen

Python installieren

sudo dnf install python

Python Paketmanager installieren.

sudo dnf install pip

Perl installieren

sudo dnf install perl

PHP Command Line Interface installieren

sudo dnf install php-cli php-common
Java

Aktuelles JDK installieren

sudo dnf install java-latest-openjdk java-latest-openjdk-devel java-latest-openjdk-javadoc-zip

Werkzeuge

Bauen

make

sudo dnf install make

automake / autoconf

sudo dnf install automake autoconf

cmake

sudo dnf install cmake
Versionskontrolle

git

sudo dnf install git

subversion

sudo dnf install subversion

CVS

sudo dnf install cvs
Sonstiges

doxigen ist der Vater aller Dokumentationswerkzeuge.

doxygen

sudo dnf install doxygen

geany ist eine wirklich leichtgewichtige IDE, mit der man alles machen kann.

geany

sudo dnf install geany

nodejs ist eine "runtime" Umgebung für javaScript

nodejs

sudo dnf install nodejs

Es wird nicht unbedingt die neueste Version installiert.

Kommandos für Arch Linux

Anweisungen für den Paketmanager pacman

Programmiersprachen

GNU

C / C++ installieren

sudo pacman -S --needed gcc

Lex / Yacc installieren

sudo pacman -S --needed flex bison

GNU Debugger

sudo pacman -S --needed gdb
Skriptsprachen

Python installieren

sudo pacman -S --needed python

Python Paketmanager installieren.

sudo pacman -S --needed python-pip

Perl installieren

sudo pacman -S --needed perl

PHP installieren

sudo pacman -S --needed php
Java

Java-17 installieren

sudo pacman -S --needed jdk17-openjdk

Werkzeuge

Bauen

make

sudo pacman -S --needed make

automake / autoconf installieren

sudo pacman -S --needed automake autoconf

cmake installieren

sudo pacman -S --needed cmake
Versionskontrolle

git

sudo pacman -S --needed git

subversion

sudo pacman -S --needed subversion

CVS

sudo pacman -S --needed cvs
Sonstiges

doxygen

sudo pacman -S --needed doxygen

geany

sudo pacman -S --needed geany

Kommandos für SUSE

Anweisungen für den Paketmanager zypper

Programmiersprachen

C und C++ Entwicklungswerkzeuge installieren

sudo zypper install -t pattern devel_C_C++
GNU

C / C++ installieren

sudo zypper install gcc gcc-c++

Lex / Yacc

sudo zypper install flex bison

GNU Debugger

sudo zypper gdb
Skriptsprachen

Python installieren

sudo zypper install python3

Der Python Paketmanager pip ist im Paket enthalten.

Perl installieren

sudo zypper install perl

PHP installieren

sudo zypper install php
Java

Java 17 installieren

sudo zypper install java-17-openjdk-devel

Es muss eine bestimmte Version bei der Installation angegeben werden; es gibt kein "default" oder "latest". JDK 17 ist aktuell in SUSE Leap 15.5.

Werkzeuge

Bauen

make

sudo zypper install make

automake / autoconf

sudo zypper install automake autoconf

cmake

sudo zypper install cmake
Versionskontrolle

git

sudo zypper install git

subversion

sudo zypper install subversion

CVS

sudo zypper install cvs
Sonstiges

doxygen

sudo zypper install doxygen

geany

sudo zypper install geany

nodejs installieren

sudo zypper install nodejs

Der Paketname nodejs existiert zwar nicht, wird aber von zypper in das aktuellste Paket im Repository umgewandelt.