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:
- Qt. Der Link zeigt auf die Open Source Version von Qt. Es ist sinnvoll, den Online Installer zu benutzen.
- Netbeans. Der Link zeigt immer auf das aktuelle Release.
-
Eclipse. Der Link zeigt auf den Download des Installers. Alternativ kann man sich über
Packages
zu den vorkonfigurierten Paketen von Eclipse weiter klicken. -
Oracle VirtualBox. Wer für seinen Paketmanager kein Paket findet, kann
All distributions
verwenden. Dahinter liegt ein shell Script (kein Paket), das die VBox nach /opt installiert. Es muss über die rechte Maustaste heruntergeladen werden. - Node.js. Auf der Seite werden diverse Methoden für diverse Arbeitsumgebungen angeboten.
- ...
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:
-
Chromium ist die Open Source Plattform für Chrome, Edge oder Opera. Chromium ist in manchen Repositories vorhanden, in manchen aber auch nicht. Manche Distros enthalten ein Paket mit anderem Namen:
chromium-browser
oderchromium-web
. Man sollte danach suchen, bevor man versucht Chromium aus dem Web zu installieren.Die Installation per Hand ist mühsam bis unmöglich. Google möchte offensichtlich gerne, dass man Chrome benutzt und nicht Chromium.
-
VSCodium ist ein Projekt, das den Open Source Teil von VSCode anbietet. In den Repositories findet man VSCodium selten bis gar nicht. Manche Distros (Arch Linux z.B.) haben alternativ
code-oss
im Repository. Ansonsten gibt es das Ganze auch als Flatpack oder snap Paket.
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 bisonGNU Debugger
sudo apt gdbSkripsprachen
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 python3Mache aus Python3 Python
sudo apt install python-is-python3Python Paketmanager installieren.
sudo apt install pipPerl installieren
sudo apt install perlPHP 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-docDie aktuelle Version ist JDK-17.
Werkzeuge
Bauen
make
sudo apt install makeautomake / autoconf
sudo apt install automake autoconfcmake
sudo apt install cmakeVersionskontrolle
git
sudo apt install gitsubversion
sudo apt install subversionCVS
sudo apt install cvsSonstiges
doxygen
sudo apt install doxygen doxygen-guigeany
sudo apt install geanynodejs installieren
sudo apt install nodejsEs wird nicht unbedingt die neueste Version installiert.
npm (node Paketmanager) installieren
sudo apt install npmUnter 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 bisonGNU Debugger
sudo dnf gdbSkriptsprachen
Python installieren
sudo dnf install pythonPython Paketmanager installieren.
sudo dnf install pipPerl installieren
sudo dnf install perlPHP Command Line Interface installieren
sudo dnf install php-cli php-commonJava
Aktuelles JDK installieren
sudo dnf install java-latest-openjdk java-latest-openjdk-devel java-latest-openjdk-javadoc-zipWerkzeuge
Bauen
make
sudo dnf install makeautomake / autoconf
sudo dnf install automake autoconfcmake
sudo dnf install cmakeVersionskontrolle
git
sudo dnf install gitsubversion
sudo dnf install subversionCVS
sudo dnf install cvsSonstiges
doxigen ist der Vater aller Dokumentationswerkzeuge.
doxygen
sudo dnf install doxygengeany ist eine wirklich leichtgewichtige IDE, mit der man alles machen kann.
geany
sudo dnf install geanynodejs ist eine "runtime" Umgebung für javaScript
nodejs
sudo dnf install nodejsEs 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 gccLex / Yacc installieren
sudo pacman -S --needed flex bisonGNU Debugger
sudo pacman -S --needed gdbSkriptsprachen
Python installieren
sudo pacman -S --needed pythonPython Paketmanager installieren.
sudo pacman -S --needed python-pipPerl installieren
sudo pacman -S --needed perlPHP installieren
sudo pacman -S --needed phpJava
Java-17 installieren
sudo pacman -S --needed jdk17-openjdkWerkzeuge
Bauen
make
sudo pacman -S --needed makeautomake / autoconf installieren
sudo pacman -S --needed automake autoconfcmake installieren
sudo pacman -S --needed cmakeVersionskontrolle
git
sudo pacman -S --needed gitsubversion
sudo pacman -S --needed subversionCVS
sudo pacman -S --needed cvsSonstiges
doxygen
sudo pacman -S --needed doxygengeany
sudo pacman -S --needed geanyKommandos 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 bisonGNU Debugger
sudo zypper gdbSkriptsprachen
Python installieren
sudo zypper install python3Der Python Paketmanager pip ist im Paket enthalten.
Perl installieren
sudo zypper install perlPHP installieren
sudo zypper install phpJava
Java 17 installieren
sudo zypper install java-17-openjdk-develEs 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 makeautomake / autoconf
sudo zypper install automake autoconfcmake
sudo zypper install cmakeVersionskontrolle
git
sudo zypper install gitsubversion
sudo zypper install subversionCVS
sudo zypper install cvsSonstiges
doxygen
sudo zypper install doxygengeany
sudo zypper install geanynodejs installieren
sudo zypper install nodejsDer Paketname nodejs existiert zwar nicht, wird aber von zypper in das aktuellste Paket im Repository umgewandelt.