diff --git a/.gitignore b/.gitignore index 8fcef1cc80e3ef3ce1c7281bc5372dc7b3415d62..0e9e07d8b3f564c86824a8e1f86a437ed36fc4fa 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,5 @@ grub_target.cfg iso-content manjaro-dependencies/pkg manjaro-dependencies/*.tar.zst +calamares-dev-dependencies/pkg +calamares-dev-dependencies/*.tar.zst diff --git a/Doku/.gitignore b/Doku/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..bcd672ab1ee0dc2a5a85214eaabaedaa51e7e767 --- /dev/null +++ b/Doku/.gitignore @@ -0,0 +1 @@ +tmp.* diff --git a/Doku/COMMON.tex b/Doku/COMMON.tex new file mode 100644 index 0000000000000000000000000000000000000000..5936c397843012e4e88e5b2d6d7b5150e4109afd --- /dev/null +++ b/Doku/COMMON.tex @@ -0,0 +1 @@ +\section{Allgemeine Tools} diff --git a/Doku/FOOTER.tex b/Doku/FOOTER.tex new file mode 100644 index 0000000000000000000000000000000000000000..6b47932f52ba844f510fab0477ab6ec38f134315 --- /dev/null +++ b/Doku/FOOTER.tex @@ -0,0 +1 @@ +\end{document} diff --git a/Doku/HEADER.tex b/Doku/HEADER.tex new file mode 100644 index 0000000000000000000000000000000000000000..9268ed8e2e33fbd7c1f2e6e9ab6c886053499160 --- /dev/null +++ b/Doku/HEADER.tex @@ -0,0 +1,28 @@ +\documentclass[a4paper]{article} + +\usepackage[T1]{fontenc} +\usepackage[utf8x]{inputenc} +\usepackage[ngerman]{babel} +\usepackage{hyperref,breakurl} +\usepackage[a4paper]{geometry} +\usepackage{csquotes} +\usepackage{graphicx} +\setlength{\parskip}{1em plus 1pt minus 1pt} +\setlength{\parindent}{0pt} +\usepackage{courier} +\usepackage{listingsutf8} +\usepackage{xcolor} +\usepackage{verbatim} + +\lstset{language=bash, numbers=left, basicstyle=\ttfamily\color{white},breaklines=true,backgroundcolor=\color{black},numberstyle=\small\color{darkgray},literate={ö}{{\"o}}1{ä}{{\"a}}1{ü}{{\"u}}1} + + +\newcommand{\startmenu}{\enquote{Kickoff Application Launcher}} + +\begin{document} + +Hier ist eine kurze Zusammenfassung über die Pakete, die du bei deiner Linux-Installation ausgewählt hast. +Des weiteren gibt es für jedes Programm eine kurze Erklärung wofür es gut ist und wie es zu benutzen ist, z.B. über eine graphische +Oberfläche oder über das Terminal. + +\tableofcontents diff --git a/Doku/INFORMATIK.tex b/Doku/INFORMATIK.tex new file mode 100644 index 0000000000000000000000000000000000000000..2d6c1b6b7f2d549cdf1972f02e2c7363e9958c3b --- /dev/null +++ b/Doku/INFORMATIK.tex @@ -0,0 +1 @@ +\section{Programme für Informatiker} diff --git a/Doku/MATHEMATIK.tex b/Doku/MATHEMATIK.tex new file mode 100644 index 0000000000000000000000000000000000000000..e10247bcb569a7b712fd8af44f9c5bddd4f73f0e --- /dev/null +++ b/Doku/MATHEMATIK.tex @@ -0,0 +1 @@ +\section{Programme für Mathematiker} diff --git a/Doku/PHYSIK.tex b/Doku/PHYSIK.tex new file mode 100644 index 0000000000000000000000000000000000000000..561be592af6ac4c9abf6edad7dbfcde108db621f --- /dev/null +++ b/Doku/PHYSIK.tex @@ -0,0 +1 @@ +\section{Programme für Physiker} diff --git a/Doku/bpython.tex b/Doku/bpython.tex new file mode 100644 index 0000000000000000000000000000000000000000..369a88ab0031357c940f4df58c99f44da068f75c --- /dev/null +++ b/Doku/bpython.tex @@ -0,0 +1,4 @@ +\subsection{bpython} +\texttt{bpython} ist eine bequeme und praktische Kommandozeile für Python, die zusätzliche Features wie Autovervollständigung und Darstellung der Hilfe und Dokumentation bereitstellt. + +Um eine kurze Anleitung zu sehen, führe \texttt{bpython} in einem Terminal aus und drücke \texttt{F1}. Die Anleitung verlässt man mit \texttt{q}. diff --git a/Doku/build-essential.tex b/Doku/build-essential.tex new file mode 100644 index 0000000000000000000000000000000000000000..80fdf56b64e237cf3de3469686d99b86660adb69 --- /dev/null +++ b/Doku/build-essential.tex @@ -0,0 +1,2 @@ +\subsection{build-essential} +build-essential ist eine Sammlung von Programmen, die man zum Kompilieren von Programmen braucht, also Compiler für C und C++, die C-Standardbibliothel und make. diff --git a/Doku/codeblocks.tex b/Doku/codeblocks.tex new file mode 100644 index 0000000000000000000000000000000000000000..20adacd8fc87d098c07afb1c99231cdb801ebbc3 --- /dev/null +++ b/Doku/codeblocks.tex @@ -0,0 +1,3 @@ +\subsection{Code::Blocks} +Plattformübergreifende integrierte Entwicklungsumgebung für C, C++ und Fortran.\\ +Siehe \url{http://codeblocks.org/} diff --git a/Doku/default-jdk.tex b/Doku/default-jdk.tex new file mode 100644 index 0000000000000000000000000000000000000000..ab4bf56ec7b762369782966ed9caa2efb529a6b5 --- /dev/null +++ b/Doku/default-jdk.tex @@ -0,0 +1,12 @@ +\subsection{default-jdk} +Das Packet \texttt{default-jdk} installiert einen Java-Compiler und das zugehörige Java-Runtime-Environment, welches benötigt wird um Java-Code zu kompilieren und auszuführen. +Des Weiteren werden auch die Standard-Bibliotheken installiert. +Java wird in der Vorlesung \enquote{Programmierung} eingeführt und benötigt. +Wenn \texttt{default-jdk} installiert ist, wird immer eine aktuell unterstützte Java-Langzeitversion installiert. +Stand Juni 2022 ist das Java 11. +Die neuere Langzeitversion kann unabhängig davon im Terminal mit dem Befehl \texttt{sudo apt install openjdk-17-jdk} installiert werden. +Auf die gleiche Weise können auch andere Versionen, wie \texttt{openjdk-18-jdk} vom März 2022, installiert werden. +Die nicht-Langzeitversionen werden aber nur für 6 Monate unterstützt. + +Beispielaufruf im Terminal mit: \texttt{javac java1.java} zum kompilieren\\ +\texttt{java java1} um die nun kompilierte Datei auszuführen. diff --git a/Doku/dia.tex b/Doku/dia.tex new file mode 100644 index 0000000000000000000000000000000000000000..16abab62648d4d932a4bc9d2de655690ef6ae281 --- /dev/null +++ b/Doku/dia.tex @@ -0,0 +1,12 @@ +\subsection{dia} +Dia ist ein Programm mit grafischer Oberfläche zur Erstellung verschiedener Diagramme; zum Beispiel UML-Diagramme (für Klassen und Usecases), Programmablaufdiagramme und vieles mehr. +Es ist hilfreich in der Vorlesung Softwaretechnik. +Dia bietet verschiedene Exportmöglichkeiten zum Beispiel nach \LaTeX sowie in die gängigen Bilderformate, sodass es universell verwendbar ist. +Das Programm arbeitet nach dem Prinzip "`What you see is what you get"'. +Mehr Infos unter \url{https://wiki.gnome.org/Apps/Dia} + +\begin{center} + \includegraphics[width=0.95\linewidth]{screenshot/dia} +\end{center} + +Aufzurufen in der Kommondozeile oder im \startmenu mit: \texttt{dia} diff --git a/Doku/ffmpeg.tex b/Doku/ffmpeg.tex new file mode 100644 index 0000000000000000000000000000000000000000..d3272ae1192c0b74c7979fd6a26a1819759e85a6 --- /dev/null +++ b/Doku/ffmpeg.tex @@ -0,0 +1,2 @@ +\subsection{ffmpeg} +ffmpeg ist ein Programm zum Konvertieren, Streamen und Abspielen von Mediendateien, vor allem für Videos. Es ist sehr praktisch, wann immer du mit Video(-s, -rohdaten, -streams) arbeitest. diff --git a/Doku/firefox.tex b/Doku/firefox.tex new file mode 100644 index 0000000000000000000000000000000000000000..79158a64ff46217710c8fecb7208b177f4dffcb0 --- /dev/null +++ b/Doku/firefox.tex @@ -0,0 +1,9 @@ +\subsection{Firefox} + +\begin{center} + \includegraphics[width=0.95\linewidth]{screenshot/firefox} +\end{center} + +Firefox ist dein Browser. +Wenn du Google Chrome gewohnt bist und diesen weiterhin nutzen willst, kannst du Chromium installieren (im Terminal: \texttt{sudo apt install chromium-browser}). +Das ist die Open-Source-Version von Google Chrome und funktioniert genauso. diff --git a/Doku/fish.tex b/Doku/fish.tex new file mode 100644 index 0000000000000000000000000000000000000000..385c8a551293a01d6f8562531caed79887382f7f --- /dev/null +++ b/Doku/fish.tex @@ -0,0 +1,3 @@ +\subsection{fish} +Shell zur interaktiven Benutzung mit smarter Autovervollständigung und einfacher Syntax.\\ +Siehe \url{https://fishshell.com/} diff --git a/Doku/fityk.tex b/Doku/fityk.tex new file mode 100644 index 0000000000000000000000000000000000000000..11d5efc2a2a89eb8e6fcad69efc93395831616fe --- /dev/null +++ b/Doku/fityk.tex @@ -0,0 +1,8 @@ +\subsection{fityk} +Fityk ist ein Programm mit grafischer Oberfläche um Messdaten als Graphen zu fitten. Es zeichnet sich dadurch aus, dass es sehr robuste Fits produziert. Grundsätzlich beherrscht es einen Skripting-Modus. + +Fityk ist wahrscheinlich nur dann das Tool der Wahl, wenn andere Fit-Systeme an der Komplexität des Problemes scheitern, da für jeden Fit einiges an "`Handarbeit"' erforderlich ist. + +Fityk sollte im Anwendungsmenü unter "`Bildung"' zu finden sein. + +Aufzurufen im Terminal mit: \texttt{fityk} diff --git a/Doku/gap.tex b/Doku/gap.tex new file mode 100644 index 0000000000000000000000000000000000000000..edfe8f853353fc6e1112b8dbf9fc5f9fad2d764e --- /dev/null +++ b/Doku/gap.tex @@ -0,0 +1,3 @@ +\subsection{GAP} +Groups, Algorithms, Programming: System für diskrete Mathematik +\url{https://www.gap-system.org/} diff --git a/Doku/gdb.tex b/Doku/gdb.tex new file mode 100644 index 0000000000000000000000000000000000000000..0cc61dfbad6dfde2a20bae054b5a1a038a6a2d8c --- /dev/null +++ b/Doku/gdb.tex @@ -0,0 +1,4 @@ +\subsection{GNU Debugger} +Der GNU Debugger \texttt{gdb} ist ein weiteres Werkzeug zum Debuggen von Programmen. +Eine kurze Anleitung ist unter \texttt{man gdb} zu finden. +Ein ausführliche Dokumentation gibt es unter \url{https://sourceware.org/gdb/current/onlinedocs/gdb/index.html}. diff --git a/Doku/gddrescue.tex b/Doku/gddrescue.tex new file mode 100644 index 0000000000000000000000000000000000000000..1c3eb2e3c7474d078899d1e9425fc89f983b0209 --- /dev/null +++ b/Doku/gddrescue.tex @@ -0,0 +1,14 @@ +\subsection{gddrescue} +\textbf{G}NU \textbf{ddrescue} ist ein Datenrettungs-Tool, welches beschädigte Dateien, Partitionen oder sogar ganze Festplatten 1:1 kopiert. Im Unterschied zu anderen Kopier-Programmen bietet es die Option, bei Lesefehlern den Kopierversuch zu wiederholen. + +ddrescue ist ein Kommandozeilentool, welches im Terminal mit \texttt{ddrescue 'Optionen' 'Quelle' 'Ziel' 'Logdatei'} aufgerufen werden kann. + +Schnelle Datenrettung: +\begin{lstlisting} +ddrescue -r0 -n /path/to/source /path/to/target /path/to/logfile-rw +ddrescue -r1 /path/to/source /path/to/target /path/to/logfile-rw +\end{lstlisting} + +Mit der Logdatei kann nach einem Abbruch des Vorgangs mittels \texttt{Strg+C} der Vorgang an der gleichen Stelle fortgesetzt werden, sie muss aber nicht angegeben werden. + +Weitere Optionen und Anwendungsbeispiele kannst du unter\\\url{http://wiki.ubuntuusers.de/gddrescue} diff --git a/Doku/ghc.tex b/Doku/ghc.tex new file mode 100644 index 0000000000000000000000000000000000000000..a5a80b263f8732db9829c0891abccc44e0883cd9 --- /dev/null +++ b/Doku/ghc.tex @@ -0,0 +1,6 @@ +\subsection{Haskell} +Haskell ist eine sehr mächtige funktionale Programmiersprache, welche zum einen in der Vorlesung \textsl{Programmierung} behandelt wird, zum anderen aber auch außerhalb der Vorlesung manchmal elegantere Lösungen für Probleme liefert als prozedurale Sprachen wie Java. + +Ein Haskell-Programm (Endung \texttt{.hs}) kann entweder interaktiv mittels \texttt{ghci \textsl{beispiel}.hs} oder standalone mit \texttt{ghc \textsl{beispiel}.hs} aufgerufen werden. + +Ein sehr ausführliches Tutorial zum Einstieg in Haskell findest du beispielsweise unter \\\url{https://en.wikibooks.org/wiki/Haskell}. diff --git a/Doku/gimp.tex b/Doku/gimp.tex new file mode 100644 index 0000000000000000000000000000000000000000..bfbd41834bafac89dddb09ae7401a10f3c2298ba --- /dev/null +++ b/Doku/gimp.tex @@ -0,0 +1,9 @@ +\subsection{GIMP} +GIMP, das GNU Image Manipulation Programm, ist ein Bildbearbeitungsprogramm. Es hat eine grafische Oberfläche und ist pixelbasiert. Während es einfache Bearbeitung durch den ungeübten Benutzer zulässt, ist es durchaus als angehende Alternative zum bekannten Photoshop angelegt und beinhaltet daher auch viele Profi-Funktionen. + +Du kannst es über das Menü aufrufen oder über ein Terminal starten. Auf letzterem gibst du einfach \texttt{gimp} ein. Im Menü klickst du auf dieses Logo: \includegraphics[height=1.5em]{logos/gimp} + +GIMP öffnet beim Start drei Fenster. Im großen Hauptfenster siehst du das zu bearbeitende Bild, sobald du eines geöffnet hast. Dort ist auch das Menü, welches dir alle Optionen zur Verfügung stellt. In einem weiteren Fenster findest du die Toolbox, in welcher du die Werkzeuge, mit denen du das Bild bearbeitest, auswählen kannst. In einem weiteren Fenster siehst du Layer und weitere Funktionen, mit denen du weitere Möglichkeiten hast. Öffnest du zum Beispiel ein Photo, lässt dich GIMP dort nicht einfach malen. Du kannst einen Layer, den du dann frei bearbeiten kannst, darüber legen. Öffnest du weitere Grafiken erhälst du nur weitere Hauptfenster und kannst die beiden anderen Fenster wiederverwenden. +\begin{center} +\includegraphics[width=0.95\linewidth]{screenshot/gimp} +\end{center} diff --git a/Doku/git.tex b/Doku/git.tex new file mode 100644 index 0000000000000000000000000000000000000000..2525aa738d56edf1af42158c7b1912759e322acc --- /dev/null +++ b/Doku/git.tex @@ -0,0 +1,11 @@ +\subsection{git} +Git ist ein dezentrales (nicht zwingend Server-basiertes) Versionsverwaltungssystem. Es eignet sich zur Verwaltung von Softwareprojekten, besonders wenn in Gruppen gearbeitet wird. Es wird hauptsächlich über die Kommandozeile bedient. Obwohl ein Verwaltungsserver nicht zwingend vorhanden sein muss, wird dennoch häufig einer verwendet. + +Meistens bekommst du zum Arbeiten in einem Projekt eine URL. Mittels \texttt{git clone URL} holst du dir eine lokale Kopie des Arbeitsverzeichnisses, in dem du Änderungen tätigen kannst.\\ +Nachdem du den Quelltext / die Dateien angepasst hast, kannst du mittels \texttt{git add DATEI} die Änderungen dem Git-System mitteilen.\\ +Nachdem Git über Änderungen informiert wurde, kannst du diese mit \texttt{git commit} zu einer Beschreibung zusammenfassen.\\ +Mittels \texttt{git push} kannst du diese Zusammenfassungen der Änderungen an den Server übertragen.\\ +Bevor du anfängst an einem Projekt weiterzuarbeiten, solltest du alle Änderungen von anderen Mitarbeitern auf dem Server abfragen. Dies kannst du mittels \texttt{git pull} erledigen.\\ +Wenn du wissen willst, welche Dateien sich bei dir geändert haben, kannst du \texttt{git status} verwenden um informiert zu werden. + +Für Hilfe: \texttt{git help}. Im Internet findest du weitaus umfangreichere Tutorials, z.B. auf \\\url{http://git-scm.com/docs/gittutorial} (englisch). diff --git a/Doku/gnome.tex b/Doku/gnome.tex new file mode 100644 index 0000000000000000000000000000000000000000..0ba048508c6f1cf7ee68f3abb1674086ac3ed4dd --- /dev/null +++ b/Doku/gnome.tex @@ -0,0 +1,2 @@ +\subsection{Gnome} +Gnome installiert die GNOME3 Desktop-Umgebung mit den GNOME Standard-Programmen uns stellt somit eine Alternative zum vorinstallierten KDE dar. GNOME kann nach der Installation im Login-Menü als Desktop Umgebung ausgewählt werden. diff --git a/Doku/gnuplot.tex b/Doku/gnuplot.tex new file mode 100644 index 0000000000000000000000000000000000000000..294bccdf9c6fc06d5171df37c506e865b2ead26e --- /dev/null +++ b/Doku/gnuplot.tex @@ -0,0 +1,27 @@ +\subsection{gnuplot} +Gnuplot ist eine skriptbasierte Anwendung zum Plotten von zwei- oder dreidimensionalen Funktionen und Daten, die auch einen interaktiven Kommandozeilenmodus bietet. +Zum Lernen von gnuplot bietet sich \url{http://www.gnuplot.info/docs\_5.4/Gnuplot\_5\_4.pdf} an. +Gnuplot kann Graphen in mehreren Modi, z.B. graphisch in einem Fenster, als ASCII-Art in der Kommandozeile, als PDF, SVG und sogar als \LaTeX{}, ausgeben. + +Aufzurufen im Terminal mit:\\ +\texttt{gnuplot} + +Mit den folgenden Anweisungen in gnuplot werden die Graphen von $(x/4)^2$, $\sin(x)$ und $1/x$ in den angegebenen Grenzen gezeichnet. + +\begin{verbatim} +set title "Some Math Functions" +set xrange [-10:10] +set yrange [-2:2] +set zeroaxis +plot (x/4)**2, sin(x), 1/x +\end{verbatim} +Die Ausgabe sieht ähnlich wie die folgende aus:\\ +\input{gnuplot_plot} + +Mit den folgenden Anweisungen kann die Grafik auch in \LaTeX-Code exportiert werden. +\begin{verbatim} +set terminal cairolatex +set output "gnuplot_plot.tex" +\end{verbatim} + +\textbf{Achtung:} Gnuplot ist leider keine freie Software im Sinne der FSFE\footnote{Free Software Foundation Europe}, obwohl es GNU im Namen trägt. Im Besonderen enthält seine Lizenz eine Klausel, welche de facto das Verändern und Weitergeben von gnuplot verhindert. Ein größtenteils kompatible, freie Alternative ist \texttt{pyxplot}. diff --git a/Doku/gnuplot_plot.pdf b/Doku/gnuplot_plot.pdf new file mode 100644 index 0000000000000000000000000000000000000000..868d3691c6ecc381135d3c980709e14b6567ed29 Binary files /dev/null and b/Doku/gnuplot_plot.pdf differ diff --git a/Doku/gnuplot_plot.tex b/Doku/gnuplot_plot.tex new file mode 100644 index 0000000000000000000000000000000000000000..db655e38bdde562f47873689c96ca66d27e07ca3 --- /dev/null +++ b/Doku/gnuplot_plot.tex @@ -0,0 +1,128 @@ +% GNUPLOT: LaTeX picture with Postscript +\begingroup + \makeatletter + \providecommand\color[2][]{% + \GenericError{(gnuplot) \space\space\space\@spaces}{% + Package color not loaded in conjunction with + terminal option `colourtext'% + }{See the gnuplot documentation for explanation.% + }{Either use 'blacktext' in gnuplot or load the package + color.sty in LaTeX.}% + \renewcommand\color[2][]{}% + }% + \providecommand\includegraphics[2][]{% + \GenericError{(gnuplot) \space\space\space\@spaces}{% + Package graphicx or graphics not loaded% + }{See the gnuplot documentation for explanation.% + }{The gnuplot epslatex terminal needs graphicx.sty or graphics.sty.}% + \renewcommand\includegraphics[2][]{}% + }% + \providecommand\rotatebox[2]{#2}% + \@ifundefined{ifGPcolor}{% + \newif\ifGPcolor + \GPcolortrue + }{}% + \@ifundefined{ifGPblacktext}{% + \newif\ifGPblacktext + \GPblacktexttrue + }{}% + % define a \g@addto@macro without @ in the name: + \let\gplgaddtomacro\g@addto@macro + % define empty templates for all commands taking text: + \gdef\gplbacktext{}% + \gdef\gplfronttext{}% + \makeatother + \ifGPblacktext + % no textcolor at all + \def\colorrgb#1{}% + \def\colorgray#1{}% + \else + % gray or color? + \ifGPcolor + \def\colorrgb#1{\color[rgb]{#1}}% + \def\colorgray#1{\color[gray]{#1}}% + \expandafter\def\csname LTw\endcsname{\color{white}}% + \expandafter\def\csname LTb\endcsname{\color{black}}% + \expandafter\def\csname LTa\endcsname{\color{black}}% + \expandafter\def\csname LT0\endcsname{\color[rgb]{1,0,0}}% + \expandafter\def\csname LT1\endcsname{\color[rgb]{0,1,0}}% + \expandafter\def\csname LT2\endcsname{\color[rgb]{0,0,1}}% + \expandafter\def\csname LT3\endcsname{\color[rgb]{1,0,1}}% + \expandafter\def\csname LT4\endcsname{\color[rgb]{0,1,1}}% + \expandafter\def\csname LT5\endcsname{\color[rgb]{1,1,0}}% + \expandafter\def\csname LT6\endcsname{\color[rgb]{0,0,0}}% + \expandafter\def\csname LT7\endcsname{\color[rgb]{1,0.3,0}}% + \expandafter\def\csname LT8\endcsname{\color[rgb]{0.5,0.5,0.5}}% + \else + % gray + \def\colorrgb#1{\color{black}}% + \def\colorgray#1{\color[gray]{#1}}% + \expandafter\def\csname LTw\endcsname{\color{white}}% + \expandafter\def\csname LTb\endcsname{\color{black}}% + \expandafter\def\csname LTa\endcsname{\color{black}}% + \expandafter\def\csname LT0\endcsname{\color{black}}% + \expandafter\def\csname LT1\endcsname{\color{black}}% + \expandafter\def\csname LT2\endcsname{\color{black}}% + \expandafter\def\csname LT3\endcsname{\color{black}}% + \expandafter\def\csname LT4\endcsname{\color{black}}% + \expandafter\def\csname LT5\endcsname{\color{black}}% + \expandafter\def\csname LT6\endcsname{\color{black}}% + \expandafter\def\csname LT7\endcsname{\color{black}}% + \expandafter\def\csname LT8\endcsname{\color{black}}% + \fi + \fi + \setlength{\unitlength}{0.0500bp}% + \ifx\gptboxheight\undefined% + \newlength{\gptboxheight}% + \newlength{\gptboxwidth}% + \newsavebox{\gptboxtext}% + \fi% + \setlength{\fboxrule}{0.5pt}% + \setlength{\fboxsep}{1pt}% + \definecolor{tbcol}{rgb}{1,1,1}% +\begin{picture}(7200.00,4320.00)% + \gplgaddtomacro\gplbacktext{% + \csname LTb\endcsname%% + \put(555,478){\makebox(0,0)[r]{\strut{}$-2$}}% + \csname LTb\endcsname%% + \put(555,866){\makebox(0,0)[r]{\strut{}$-1.5$}}% + \csname LTb\endcsname%% + \put(555,1254){\makebox(0,0)[r]{\strut{}$-1$}}% + \csname LTb\endcsname%% + \put(555,1642){\makebox(0,0)[r]{\strut{}$-0.5$}}% + \csname LTb\endcsname%% + \put(555,2030){\makebox(0,0)[r]{\strut{}$0$}}% + \csname LTb\endcsname%% + \put(555,2418){\makebox(0,0)[r]{\strut{}$0.5$}}% + \csname LTb\endcsname%% + \put(555,2806){\makebox(0,0)[r]{\strut{}$1$}}% + \csname LTb\endcsname%% + \put(555,3194){\makebox(0,0)[r]{\strut{}$1.5$}}% + \csname LTb\endcsname%% + \put(555,3582){\makebox(0,0)[r]{\strut{}$2$}}% + \csname LTb\endcsname%% + \put(656,239){\makebox(0,0){\strut{}$-10$}}% + \csname LTb\endcsname%% + \put(2211,239){\makebox(0,0){\strut{}$-5$}}% + \csname LTb\endcsname%% + \put(3766,239){\makebox(0,0){\strut{}$0$}}% + \csname LTb\endcsname%% + \put(5321,239){\makebox(0,0){\strut{}$5$}}% + \csname LTb\endcsname%% + \put(6876,239){\makebox(0,0){\strut{}$10$}}% + }% + \gplgaddtomacro\gplfronttext{% + \csname LTb\endcsname%% + \put(6074,3367){\makebox(0,0)[r]{\strut{}$(x/4)**2$}}% + \csname LTb\endcsname%% + \put(6074,3128){\makebox(0,0)[r]{\strut{}$sin(x)$}}% + \csname LTb\endcsname%% + \put(6074,2889){\makebox(0,0)[r]{\strut{}$1/x$}}% + \csname LTb\endcsname%% + \put(3766,3940){\makebox(0,0){\strut{}Some Math Functions}}% + }% + \gplbacktext + \put(0,0){\includegraphics[width={360.00bp},height={216.00bp}]{gnuplot_plot}}% + \gplfronttext + \end{picture}% +\endgroup diff --git a/Doku/gparted.tex b/Doku/gparted.tex new file mode 100644 index 0000000000000000000000000000000000000000..30941011d1488700ac6695bc2c70963df42ce398 --- /dev/null +++ b/Doku/gparted.tex @@ -0,0 +1,2 @@ +\subsection{gparted} +Gparted ist ein Programm zum Partitionieren von Laufwerken. Wahrscheinlich hast du es bereits bei der Installation deines GNU/Linux-Systems gesehen. diff --git a/Doku/graph.png b/Doku/graph.png new file mode 100644 index 0000000000000000000000000000000000000000..2662a2d0e958bbed720065c61c2f6f84295149d4 Binary files /dev/null and b/Doku/graph.png differ diff --git a/Doku/graphviz.tex b/Doku/graphviz.tex new file mode 100644 index 0000000000000000000000000000000000000000..12d8d389de6baaffaa58434e4b4b38af215b5a77 --- /dev/null +++ b/Doku/graphviz.tex @@ -0,0 +1,18 @@ +\subsection{graphviz} +Graphviz ist ein Programm zur Erstellung von Graphen. Dazu nutzt es seine eigene Beschreibungssprache \enquote{DOT} welche im Klartext gespeichert wird. Das Speichern im Klartextformat ist hilfreich für Versionsverwaltungssystem wie git oder svn und ermöglicht das Lesen und Bearbeiten des Graphen auch ohne spezielle Software.\\ +Eine ausführliche Einführung findest du unter \url{http://www.graphviz.org/pdf/dotguide.pdf}. + +\begin{samepage} +Beispiel:\\ +Datei beispiel.dot: +\begin{verbatim} +digraph G { + "start" -> "überprüfe eingabe" -> "zeige daten an" -> "ende"; + "start" -> "initialisiere"; + "start" -> "füttere katze" -> "nomnom" -> "ende"; + "füttere katze" -> "katze schnurrt"; +} +\end{verbatim} +wird mit dem Kommandozeilenaufruf \texttt{dot -T png beispiel.dot -o beispiel.png} zu\\ +\includegraphics[scale=0.5]{graph} +\end{samepage} diff --git a/Doku/gufw.tex b/Doku/gufw.tex new file mode 100644 index 0000000000000000000000000000000000000000..3f02487eb476c988ff9996f977917975b4173f3b --- /dev/null +++ b/Doku/gufw.tex @@ -0,0 +1,12 @@ +\subsection{gufw} +Gufw stellt eine graphische Oberfläche für die Systemfirewall bereit. Hiermit lassen sich Regeln für Port- und IP-Filter bzw. entsprechende Freigaben zusammenklicken. +Es wird empfohlen, grundsätzlich alles zu Filtern, und nur bei Bedarf die benötigten Ports oder IPs freizugeben. +Achtung: Man kann sich damit seine Internetverbindung kaputt machen. +\\ +Aufruf über Kommandozeile mit \texttt{gufw} und im \startmenu\ als \enquote{Firewall-Konfiguration} oder durch Suche nach Firewall. + +\begin{center} + \includegraphics[width=0.95\linewidth]{screenshot/gufw} +\end{center} + +Alternative: Konfiguration der Firewall über die Kommandozeile mit \texttt{sudo ufw [optionen]}. diff --git a/Doku/htop.tex b/Doku/htop.tex new file mode 100644 index 0000000000000000000000000000000000000000..61f436d9d4064010d2cb1a57d4897c02836543be --- /dev/null +++ b/Doku/htop.tex @@ -0,0 +1,4 @@ +\subsection{htop} +\texttt{htop} ist ein Kommandozeilenprogramm, das die aktuell laufenden Prozesse, die Prozessor- und Arbeitsspeicherauslastung sowie weitere Informationen anzeigt. Es erlaubt das Filtern nach Namen, Anzeigen als Baumstruktur, Sortieren nach verschiedenen Kriterien, Änderung der Priorität und Abschießen von Prozessen mit verschiedenen Signalen. + +Alternativen hierzu sind \texttt{top} und \texttt{atop}. diff --git a/Doku/inkscape.tex b/Doku/inkscape.tex new file mode 100644 index 0000000000000000000000000000000000000000..347dc95d2796c89436c0afd74c7c9aa65d2d8c41 --- /dev/null +++ b/Doku/inkscape.tex @@ -0,0 +1,12 @@ +\subsection{Inkscape} +Inkscape ist ein vektorbasiertes Bildbearbeitungs- und Zeichenprogramm mit grafischer Oberfläche. Der Standarddateityp ist SVG (Scalable Vector Graphics), was von den meisten Webbrowsern nativ dargestellt werden kann. Als Vektorformat ist SVG ebenfalls zur Druckaufbereitung sehr gut geeignet, wenn Poster, Skripte, Bücher etc. gedruckt werden müssen. +Auch Diagramme lassen sich gut mit Inkscape erstellen. + +Inkscape ist kompatibel zu vielen anderen vektorbasierten Zeichenprogrammen wie zum Beispiel Adobe Illustrator oder AutoCAD. + +Viele Zeichnungen in der Wikipedia wurden damit erstellt. Ein sinnvolle Tutorial findet sich unter \url{http://inkscape.org/doc/basic/tutorial-basic.de.html} + +Inkscape kann im Terminal oder im \startmenu{} als \texttt{inkscape} aufgerufen werden. +\begin{center} + \includegraphics[width=0.8\linewidth]{screenshot/inkscape} +\end{center} diff --git a/Doku/ipython.tex b/Doku/ipython.tex new file mode 100644 index 0000000000000000000000000000000000000000..921fd63ec6234f308dd111bdb0c6cf0a99ce9090 --- /dev/null +++ b/Doku/ipython.tex @@ -0,0 +1,3 @@ +\subsection{ipython} +IPython ist eine bequeme und praktische Kommandozeile für Python, die zusätzliche Features wie Autovervollständigung bereitstellt. +Die Dokumentation beim Aufruf in der Kommandozeile (\texttt{ipython3} für python3 oder \texttt{ipython} für python2) ist selbsterklärend. diff --git a/Doku/kde-telepathy.tex b/Doku/kde-telepathy.tex new file mode 100644 index 0000000000000000000000000000000000000000..3855174ff28a7c220f436c92ad686655a76a20cc --- /dev/null +++ b/Doku/kde-telepathy.tex @@ -0,0 +1,6 @@ +\subsection{KDE-Telepathy} +KDE-Telepathy ist der in KDE integrierte Multi-Messenger der verschiedene Chat-Protokolle wie z.B. XMPP, Skype und IRC in einer grafischen Oberfläche zusammenfasst. + +Du kannst Telepathy über Internet $\rightarrow$ Telepathy-Kontaktliste starten. Dort kannst du nach dem ersten Start relativ intuitiv Konten anlegen. Wenn du später Kontakte hinzufügen oder ändern möchtest kannst du dieses über den Schraubenschlüssel $\rightarrow$ Instant-Messaging-Einstellungen machen. + +Du musst nicht immer manuell die Kontaktliste öffnen, Telepathy wird automatisch beim Einloggen gestartet und läuft im Hintergrund. diff --git a/Doku/keepassxc.tex b/Doku/keepassxc.tex new file mode 100644 index 0000000000000000000000000000000000000000..c17bf1db0765ae5b13b5674ec8af9dc1b71028ad --- /dev/null +++ b/Doku/keepassxc.tex @@ -0,0 +1,10 @@ +\subsection{KeePassXC} +KeePassXC ist ein Passwortmanager, der Passwörter in einer verschlüsselten Datenbank durch ein Masterpasswort geschützt speichert. +So kann man für jeden passwortgeschützten Dienst ein eigenes, sicheres Passwort verwenden, ohne sich viele Passwörter merken zu müssen. + +Außerdem kann KeePassXC sichere Passwörter zufällig generieren. +Durch ein Browser-Add-on oder durch eine Tastenkombination zum automatischen Einfügen von Passwörtern muss man Passwörter und Benutzernamen zudem beim Anmelden auf Webseiten nicht selbst eintippen. + +Das von KeePassXC verwendete Format für verschlüsselte Datenbanken wird auch von KeePass2 verwendet, einem weit verbreiteten Passwortmanager für Windows. + +\textbf{Beachte}: Wenn alle Passwörter in einer Datenbank liegen, sollte man davon natürlich ein Backup haben. diff --git a/Doku/kile.tex b/Doku/kile.tex new file mode 100644 index 0000000000000000000000000000000000000000..007447ef069831dbde544c589298dd327c812d59 --- /dev/null +++ b/Doku/kile.tex @@ -0,0 +1,14 @@ +\subsection{Kile} +Kile ist ein Standard \LaTeX-Editor in KDE mit grafischer Oberfläche, welcher die wichtigsten Bibliotheken und Funktionen mitbringt. + +\includegraphics[width=0.95\linewidth]{screenshot/kile} + +\LaTeX\ ist eine mächtige Textsatzsprache, die sich zum Erstellen von Dokumenten eignet. Dokumente werden in Klartext erstellt und anschließend nach PDF compiliert. Das Speichern im Klartextformat ist hilfreich für Versionsverwaltungssysteme wie \textsl{git} oder \textsl{svn} und ermöglicht, das Dokument auch ohne spezielle Software zu lesen und zu bearbeiten. + +Du kannst dir auch das \LaTeX-Kompendium\\ +\url{https://de.wikibooks.org/wiki/LaTeX-Kompendium} anschauen. +Für weiterführende Informationen sei auch das englische \LaTeX Wikibook empfohlen:\\\url{http://en.wikibooks.org/wiki/LaTeX}. + +Aufzurufen über die grafische Oberfläche oder im Terminal mit: \texttt{kile} + +Weitere Informationen: \texttt{man kile} diff --git a/Doku/kopete.tex b/Doku/kopete.tex new file mode 100644 index 0000000000000000000000000000000000000000..12058f2bfe9dd6aaf69727dbbcd5f4427966f266 --- /dev/null +++ b/Doku/kopete.tex @@ -0,0 +1,6 @@ +\subsection{kopete} +Kopete ist ein Instant-Messenger, der verschiedene Protokolle wie IRC oder XMPP (Jabber, Facebook,\ldots) in einer Anwendung zusammenfasst. Mit dem Addon 'Off-the-Record Messaging' (OTR) können die Gespräche End-to-End verschlüsselt werden. + +Wenn nicht mit dem System gestartet, aufzurufen im Terminal mit: \texttt{kopete} + +Weitere Informationen: \texttt{man kopete} diff --git a/Doku/latex.tex b/Doku/latex.tex new file mode 100644 index 0000000000000000000000000000000000000000..30fba3a40c3cea0e07b9385a58a00825dc32fd4e --- /dev/null +++ b/Doku/latex.tex @@ -0,0 +1,7 @@ +\subsection{\LaTeX} +\LaTeX ist ein Textsatzsystem, mit dem man professionellen Textsatz durchführen kann. Diese Dokumentation ist zum Beispiel auch mit \LaTeX erstellt worden. + +Zum Bearbeiten von \LaTeX-Dokumenten kann man entweder einen normale Texteditor oder eine spezielle Software wie zum Beispiel Texmaker, Texstudio oder Kile verwenden. +Der Hauptunterschied zwischen \LaTeX und \enquote{normalen} Textverarbeitungssystemen ist, dass \LaTeX-Dokummente wie ein Programm kompiliert werden. Dies ermöglicht es dem Textsatzsystem, Bilder, Abbildungen und Tabellen intelligent anzuordnen. + +\LaTeX ist aufgrund seines guten Textsatzes bei (mathematischen) Formeln im universitären Umfeld weit verbreitet. diff --git a/Doku/lftp.tex b/Doku/lftp.tex new file mode 100644 index 0000000000000000000000000000000000000000..172ce2b043d3916ae1284f1e7cb4bb7f9d75d1ff --- /dev/null +++ b/Doku/lftp.tex @@ -0,0 +1,9 @@ +\subsection{lftp} +Lftp ist ein kommandozeilenbasierter FTP-Client, mit dem man Daten zwischen einem Client und einem FTP-Server verschieben kann.\\ +Zusätzlich zu FTP kann lftp auch noch FTPS, HTTP, HTTPS, HFTP, FISH, SFTP und Bittorrent. + +LFTP besitzt keine graphische Benutzeroberfläche und wird im Terminal mit \texttt{lftp} gestartet. + +Es unterstützt im Gegensatz zu \texttt{ftp} Tab-Completion, d.h. man kann durch Drücken der Tabulator-Taste Dateinamen vervollständigen. + +Zum Beenden drückt man entweder \texttt{Strg+D} oder gibt \texttt{exit} ein. Mit \texttt{help} kann die integrierte Hilfe angezeigt werden. diff --git a/Doku/liblapack-dev.tex b/Doku/liblapack-dev.tex new file mode 100644 index 0000000000000000000000000000000000000000..deaba72d9e466a094418090d4f4fabe61f809e9d --- /dev/null +++ b/Doku/liblapack-dev.tex @@ -0,0 +1,21 @@ +\subsection{LAPACK} +"`LAPACK"' steht für "`Linear Algebra PACKage"' und ist eine Bibliothek von numerischen Algorithmen aus der linearen Algebra, insbesondere also für Matrixoperationen für sowohl reelle als auch komplexe Zahlen. Geschrieben ist sie in \texttt{Fortran}, aber sie kann auch in \texttt{C} und \texttt{C++} genutzt werden. Aufgrund von Längenbeschränkungen von Funktionsnamen in alten Fortranversionen sind alle Lapack-Funktionsnamen maximal sechs Buchstaben lang, wie z.B. DGESV zum Lösen eines allgemeinen linearen Gleichungssystems in doppelter Genauigkeit. + +Sie gehört zu den Standard-Bibliotheken bei allen Numerikern. + +\paragraph{Nutzung:} +Grundsätzlich ist die Bibliothek als Header im Programmquelltext einzubinden. In \texttt{C++} würde dies durch die Zeile +\begin{verbatim} +#include "<PFAD>/lapack.h" +\end{verbatim} +geschehen. Beim Kompilieren sind dann die Bibliotheken zu "`linken"'. (Das heißt, dass man dem Compiler entsprechende Flags mitgeben muss.) + +\texttt{g++}-Benutzer würden eingeben: +\begin{verbatim} +g++ main.cpp -llapack +\end{verbatim} + +LAPACK wird normaler Weise zusammen mit anderen Bibliotheken verwendet; insbesondere mit "`BLAS"' (Basic Linear Algebra Subprograms), dessen Funktionen in den Lapack-Funktionen verwendet werden. Hier müssen gegebenenfalls weitere Header eingebunden werden und weitere Compiler-Flags gesetzt werden. Genaueres erfährt man hierzu in den Dokumentationen. + +\paragraph{Für Hilfe:} +LAPACK ist auf seiner Homepage \url{http://www.netlib.org/lapack/} nicht hinreichend dokumentiert. Zum tieferen Verständnis der Funktion sollte der Fortran-Sourcecode betrachtet werden. Alternativ findet man auch schon etliche Beispiele in der Manpage, die man über \texttt{man lapack} erreicht. diff --git a/Doku/libreoffice.tex b/Doku/libreoffice.tex new file mode 100644 index 0000000000000000000000000000000000000000..0ec1d2fa9958e885ae4a786a9f13fdaece654093 --- /dev/null +++ b/Doku/libreoffice.tex @@ -0,0 +1,2 @@ +\subsection{LibreOffice} +LibreOffice ist ein Paket von Officeanwendungen. Es beinhaltet Programme zum Bearbeiten von Dokumenten, Tabellen, Datenbanken, mathematischen Formeln und Präsentationen sowie ein Zeichenprogramm. diff --git a/Doku/linux-firmware-nonfree.tex b/Doku/linux-firmware-nonfree.tex new file mode 100644 index 0000000000000000000000000000000000000000..58b2daa5d72490cc503885f90deb6cc0bbabc314 --- /dev/null +++ b/Doku/linux-firmware-nonfree.tex @@ -0,0 +1,3 @@ +\subsection{linux-firmware-nonfree} +Das Paket \texttt{linux-firmware-nonfree} installiert proprietäre Treiber (nicht freie\footnotemark Treiber). Wenn die Hardware im Laptop/Desktop-PC nicht von den freien Linux-Treibern unterstützt wird, ist es sinnvoll, diese zu installieren. +\footnotetext{Falls dir der Unterschied zwischen \enquote{frei} und \enquote{kostenlos} nicht klar ist, kannst du unter \mbox{\url{https://de.wikipedia.org/wiki/Freie_Software}} nachlesen, worum es bei dieser Unterscheidung geht.} diff --git a/Doku/logos/gimp.png b/Doku/logos/gimp.png new file mode 100644 index 0000000000000000000000000000000000000000..ceaf757d6fcc57fd3d5b8024c9b385542da45b16 Binary files /dev/null and b/Doku/logos/gimp.png differ diff --git a/Doku/logos/largeVLC.png b/Doku/logos/largeVLC.png new file mode 100644 index 0000000000000000000000000000000000000000..96cba85e2ae12979a8c7066af8bd288dfac9f6e5 Binary files /dev/null and b/Doku/logos/largeVLC.png differ diff --git a/Doku/logos/mplayer_logo.png b/Doku/logos/mplayer_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..8150528363474f48ccbc61e575433d4590f65fbe Binary files /dev/null and b/Doku/logos/mplayer_logo.png differ diff --git a/Doku/logos/pidgin.png b/Doku/logos/pidgin.png new file mode 100644 index 0000000000000000000000000000000000000000..3c6a4ce6c083da4fe5fc194df977f4521b92da00 Binary files /dev/null and b/Doku/logos/pidgin.png differ diff --git a/Doku/make_doku_part.sh b/Doku/make_doku_part.sh new file mode 100755 index 0000000000000000000000000000000000000000..bce986240a85d09052d2f6a3bcb9f4468b58531a --- /dev/null +++ b/Doku/make_doku_part.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +set -e + +cat HEADER.tex $@ FOOTER.tex > tmp.tex +pdflatex tmp.tex + +exit 0 diff --git a/Doku/mplayer.tex b/Doku/mplayer.tex new file mode 100644 index 0000000000000000000000000000000000000000..1b0a5f3effc0a37c650dc8174dd3be00c00c1e37 --- /dev/null +++ b/Doku/mplayer.tex @@ -0,0 +1,21 @@ +\subsection{MPlayer} +MPlayer ist ein Programm, mit dem man Filme aus dem Terminal heraus abspielen kann. Es unterstützt +so gut wie alle Formate und funktioniert auch manchmal bei fehlerhaften Dateien, wo andere +Player aufgeben. + +Um eine Videodatei mit MPlayer zu öffnen, kann man einfach \texttt{mplayer <Dateipfad>} eingeben. +Ein Vorteil von MPlayer ist, dass er sehr wenig Ballast in Form von Buttons und Symbolleisten +mitbringt. Es öffnet sich lediglich ein Fenster, in dem das Video zu sehen ist. Die Bedienung +erfolgt dann über Tastaturbefehle. Hier sind die wichtigsten: + +\begin{tabular}{ | l | l | } +\hline +Leertaste & Pause\\ +ESC & Abspielen beenden\\ +f & Vollbild\\ +$\leftarrow$ / $\rightarrow$ & zurück- und vorspulen\\ +9 / 0 & leiser und lauter\\ +{[} / {]} & langsamer und schneller abspielen\\ +backspace & normale Geschwindigkeit\\ +\hline +\end{tabular} diff --git a/Doku/openssh-server.tex b/Doku/openssh-server.tex new file mode 100644 index 0000000000000000000000000000000000000000..6531ec2e6bc05b9cfbdb3566895411e88c9677fa --- /dev/null +++ b/Doku/openssh-server.tex @@ -0,0 +1,8 @@ +\subsection{openssh-server} \label{ch_sshd} +In dem Paket \texttt{openssh-server} ist ein Server für den auf Port 22 laufenden SSH-Dienst. Dann kannst du dich mit dem Kommandozeilenprogramm \texttt{ssh} oder unter Windows mit Putty von anderen Rechnern aus auf die Kommandozeile deines Rechners verbinden. + +Du kannst dich auf diese Weise bspw. von unterwegs zu deinem Rechner zu Hause verbinden. + +\textbf{Achtung:} Wenn du den Server falsch konfigurierst, was leider sehr schnell passiert, kann es passieren, dass Fremde Zugriff auf deinen Rechner bekommen! + +Weitere Infos, insbesondere auch Konfigurationshinweise, finden sich auch unter\\\url{http://wiki.ubuntuusers.de/SSH#Der-SSH-Server}. diff --git a/Doku/p7zip.tex b/Doku/p7zip.tex new file mode 100644 index 0000000000000000000000000000000000000000..8417fb677d68f59b0dbd1f2b61ba9f568cf38918 --- /dev/null +++ b/Doku/p7zip.tex @@ -0,0 +1,8 @@ +\subsection{p7zip-full} +P7zip packt und entpackt Archive der meisten häufig vorkommenden Formate (z.B. .7z, .tar.gz, zip, .iso, \dots{}). + +Aufruf im Terminal mit:\\ +\texttt{7z 'Argumente'} + +Eine Übersicht der möglichen Argumente gibt es in +\texttt{man 7z} diff --git a/Doku/pidgin.tex b/Doku/pidgin.tex new file mode 100644 index 0000000000000000000000000000000000000000..d7c36a0621e7f2c10c4e12619c78b2a67a25b9f1 --- /dev/null +++ b/Doku/pidgin.tex @@ -0,0 +1,14 @@ +\subsection{Pidgin} +Pidgin ist ein Programm zum Chatten, also ein Instant Messenger. Es unterstützt dabei so ziemlich alle Protokolle, von IRC bis Jabber\footnote{und damit auch den Facebook-Chat}. Du kannst also alle Accounts, die du in den verschiedenen Systemen hast, in einem Programm nutzen. + +Pidgin startest du entweder über das Menü oder ein Terminal. Im Terminal schreibst du den Befehl \texttt{pidgin}. Im Menü klickst du auf dieses Logo: \includegraphics[height=1.5em]{logos/pidgin} + +Pidgin legt in der Systemleiste\footnote{ganz unten rechts, neben Uhrzeit, Lautstärke und den ganzen anderen Logos} ein Symbol an, über das du es im Hintergrund laufen lassen kannst. Wenn es nicht dorthin minimiert ist, siehst du ein Fenster, in welchem du deinen Status wählen kannst und deine Freunde aufgelistet bekommst. Dort kannst du eine Unterhaltung starten, worauf sich ein übliches Chat-Fenster öffnet, in dem du den Nachrichtenverlauf siehst und neue Nachrichten eingeben kannst. Dabei können mehrere Gespräche in eigenen Fenstern oder in Tabs geöffnet sein. + +\begin{center} +\includegraphics[width=0.95\linewidth]{screenshot/pidgin} +\end{center} + +Über ein Plugin kannst du \enquote{Off-the-Record Messaging} (OTR) ermöglichen. OTR bietet dir die Möglichkeit Gespräche verschlüsselt zu führen, ohne dass die Server, an denen die Nachricht vorbei kommt, die Nachrichten nicht mitlesen kann. Dies müssen deine Gesprächspartner dazu natürlich ebenfalls benutzen. + +%Auf der KISS\footnote{Kommunikation und Installation schöner Software, unsere Linux Workshops} wird es einen Vortrag zu Jabber und OTR geben, in dem die grundlegende Benutzung und Funktionsweise erläutert werden. Dabei wird zur Demonstration auch Pidgin verwendet. Wenn du die KISS verpasst, kannst du dir auf der Website der Video AG der Fachschaft\footnote{\url{https://videoag.fsmpi.rwth-aachen.de}} eine Aufzeichnung ansehen. diff --git a/Doku/postgreSQL.tex b/Doku/postgreSQL.tex new file mode 100644 index 0000000000000000000000000000000000000000..5f3099c94c1bc6587152dc3de4d11e6dd7d377a6 --- /dev/null +++ b/Doku/postgreSQL.tex @@ -0,0 +1,4 @@ +\subsection{postgresql} +PostgreSQL ist eine Datenbank, welche in der Vorlesung \enquote{Datenbanken und Informationssysteme} zur Anwendung der Vorlesungsinhalte genutzt werden kann. + +Hilfe findet man unter \texttt{man postgres}. diff --git a/Doku/pwgen.tex b/Doku/pwgen.tex new file mode 100644 index 0000000000000000000000000000000000000000..1ae166077379387f02fdcc47fcbbe4527e88bcbd --- /dev/null +++ b/Doku/pwgen.tex @@ -0,0 +1,12 @@ +\subsection{pwgen} +Pwgen ist ein Tool für die Kommandozeile zum Generieren von Passwörtern. Die generierten Passwörter werden im Terminal angezeigt. + +Aufzurufen im Terminal mit: \texttt{pwgen 'Zeichenanzahl' 'Anzahl'} + +Erstellung eines Passworts mit Acht Zeichen: \texttt{pwgen 8 1} + +Mit \texttt{pwgen -s 'Zeichenanzahl'} kann man Passwörter mit erhöhter Sicherheit generieren. + +Das Handbuch sowie weitere Optionen (z.B. keine Zahlen, Buchstaben, Sonderzeichen) können mittels \texttt{man pwgen} angezeigt werden. + +Wenn du den Passwordmanager KeePassXC (oder eine andere Variante von KeePass) installiert hast, ist es praktischer, Passwörter direkt in KeePassXC zu generieren. diff --git a/Doku/python-matplotlib.tex b/Doku/python-matplotlib.tex new file mode 100644 index 0000000000000000000000000000000000000000..149f566317d0fe6b57d80e43b0260485f91e62f8 --- /dev/null +++ b/Doku/python-matplotlib.tex @@ -0,0 +1,26 @@ +\subsection{python-matplotlib}\label{ch_matplotlib} +Matplotlib ist eine Bibliothek für Python, die insbesondere Tools zum Plotten von Funktionen und Datensätzen enthält. Sinnvollerweise nutzt man sie in Kombination mit NumPy (siehe Abschnitt \ref{ch_numpy}), welches die Datentypen bereit stellt, die Matplotlib benutzt. + +Gerade bei der Analyse wissenschaftlicher Daten ist es unerlässlich, die Ergebnisse graphisch darzustellen. Wenn man Python (zusammen mit NumPy) dafür benutzen möchte, ist Matplotlib meist die Bibliothek der Wahl. + +%Um in einem Python-Skript Matplotlib oder ein Untermodul zu verwenden, gibt es mehrere Möglichkeiten, die sich darin unterscheiden, wie die Bibliothek im weiteren Code aufgerufen wird. Zum Beispiel: +% +%\begin{verbatim} +%import matplotlib +%import matplotlib as mpl +%from matplotlib import * +%import matplotlib.pyplot as plt +%... +%\end{verbatim} + +Die einfachste Verwendung folgt folgendem Schema: +\begin{verbatim} +import matplotlib.pyplot as plt +x = [1,2,3,4] +y = [2,3,5,8] +plt.plot(x, y) +plt.show() +\end{verbatim} +Weitere Beispiele und Tutorials findet man unter \url{https://matplotlib.org/tutorials/index.html}. + +Zur Nutzung sind grundlegende Python-Kenntnisse erforderlich. diff --git a/Doku/python-numpy.tex b/Doku/python-numpy.tex new file mode 100644 index 0000000000000000000000000000000000000000..114f96a36733579b8f767891b41600e2e71e8cb4 --- /dev/null +++ b/Doku/python-numpy.tex @@ -0,0 +1,15 @@ +\subsection{python-numpy} \label{ch_numpy} +Numpy ist eine Bibliothek für Python, die diverse Datenstrukturen und Funktionen für effiziente numerische Berechnungen zur Verfügung stellt. Dazu gehören Matrixoperationen und komplizierte mathematische Funktionen, aber auch Tools zum Einlesen/Speichern von Datensätzen und vieles mehr. + +NumPy ist extrem hilfreich in der Analyse wissenschaftlicher Daten und seine Verbreitung nimmt zu. Es ist sinnvoll, es in Kombination mit Matplotlib (siehe Abschnitt \ref{ch_matplotlib}) zu verwenden, welches Tools zur graphischen Darstellung bereitstellt. Als weitere Ergänzung zu NumPy bietet sich SciPy (siehe Abschnitt \ref{ch_scipy}) an, welches weitere, elaborierte Methoden zur wissenschaftlichen Datenanalyse liefert. + +Um in einem Python-Skript NumPy oder ein Untermodul zu verwenden, gibt es mehrere Möglichkeiten, die sich darin unterscheiden, wie die Bibliothek im weiteren Code aufgerufen wird. Zum Beispiel: + +\begin{verbatim} +import numpy +import numpy as np +from numpy import * +... +\end{verbatim} + +Zur Nutzung sind grundlegende Python-Kenntnisse erforderlich. diff --git a/Doku/python-scipy.tex b/Doku/python-scipy.tex new file mode 100644 index 0000000000000000000000000000000000000000..d5ee38ab451e3582d6748c98aa611a96a2930334 --- /dev/null +++ b/Doku/python-scipy.tex @@ -0,0 +1,13 @@ +\subsection{python-scipy} \label{ch_scipy} +Scipy ist eine Bibliothek für Python und stellt Bibliotheken für wissenschaftliche Berechnungen zur Verfügung, z.B. Statistik, Fouriertransformation und Autokorrelation. Es ist eine gute Ergänzung zu NumPy (siehe Abschnitt \ref{ch_numpy}). + +Um in einem Python-Skript SciPy oder ein Untermodul zu verwenden, gibt es mehrere Möglichkeiten, die sich darin unterscheiden, wie die Bibliothek im weiteren Code aufgerufen wird. Zum Beispiel: + +\begin{verbatim} +import scipy +import scipy as scp +from scipy import * +... +\end{verbatim} + +Zur Nutzung sind grundlegende Python-Kenntnisse erforderlich. diff --git a/Doku/python-seaborn.tex b/Doku/python-seaborn.tex new file mode 100644 index 0000000000000000000000000000000000000000..cfac886a2189bcfdc8330dfbeb4a487aff286888 --- /dev/null +++ b/Doku/python-seaborn.tex @@ -0,0 +1,2 @@ +\subsection{Seaborn} +Seaborn ist eine Pythonbibliothek zum Visualisieren statistischer Daten und basiert auf Matplotlib. diff --git a/Doku/python-sympy.tex b/Doku/python-sympy.tex new file mode 100644 index 0000000000000000000000000000000000000000..3ac87f31e935b5c4955761c0738446206b3e4bba --- /dev/null +++ b/Doku/python-sympy.tex @@ -0,0 +1,6 @@ +\subsection{python-sympy} +Sympy ist eine Bibliothek für Python, welche symbolische Berechnungen ermöglicht. Das bedeutet, dass man statt mit konkreten Zahlen mit Variablen rechnen kann. + +Die vollständige Dokumentation findet man unter \url{http://sympy.org/en/index.html}. + +Derzeit ist SymPy in keinem Studienfach notwendiger Bestandteil, da es nicht so mächtig ist wie kommerzielle Alternativen. Es gehört aber zu den (wenigen) vielversprechenden freien Alternativen und bietet eine bequeme Schnittstelle zu den effizienten nummerischen Methoden von Numpy. diff --git a/Doku/root-system.tex b/Doku/root-system.tex new file mode 100644 index 0000000000000000000000000000000000000000..4a63a80206e2cf62f7e4d1bdc50dfab4d0d294ff --- /dev/null +++ b/Doku/root-system.tex @@ -0,0 +1,13 @@ +% Existiert nicht mehr in den offiziellen Repositories! +\subsection{ROOT} +ROOT ist eine Sammlung von Software, die zur Analyse von Daten in der Teilchenphysik entwickelt wurde, aber heute viele zusätzliche Möglichkeiten, wie das Erstellen von Graphen oder Kurvenfitting, bietet. + +ROOT kann über das Terminal oder über eine graphische Oberfläche bedient werden. + +Grundsätzlich basiert ROOT auf C++, aber leider hat es die unangenehme Eigenschaft, ein wenig von der üblichen C++-Syntax abzuweichen, weswegen es standardmäßig mit seinem eigenen Interpreter daher kommt. Es ist grundsätzlich mit etwas Aufwand möglich, C++-Code zu schreiben, der ROOT-Bibliotheken benutzt. + +%Unter Umständen kann es notwendig sein, eine neuere ROOT-Version zu verwenden, als die, die in den offiziellen Ubuntu-Paketquellen enthalten ist. +ROOT ist nicht mehr in den offiziellen Paketquellen von Ubuntu enthalten und muss daher "`von Hand"' von der CERN-Website (\url{http://root.cern.ch/drupal/}) heruntergeladen werden. Dort findet man dann auch die Installationsanleitung. + +Aufzurufen im Terminal mit: \texttt{root}\\ +Für Hilfe: \texttt{man root} diff --git a/Doku/screen.tex b/Doku/screen.tex new file mode 100644 index 0000000000000000000000000000000000000000..e952642635f33df69f783947664dae346ce355e7 --- /dev/null +++ b/Doku/screen.tex @@ -0,0 +1,27 @@ +\subsection{screen} \label{ch_screen} + +GNU Screen ist ein Terminalmultiplexer für die Kommandozeile. Ein weiterer +Anwendungszweck ist, die Shell offen zu halten, auch wenn man bspw. das Terminal +schließt. Wenn du dich z.B. über ssh (eine Remoteshell) zu einem anderen Rechner +verbindest und die Shell auf jeden Fall offen halten möchtest, weil du bspw. ein +Update machst, kannst du zuerst \texttt{screen} ausführen und befindest dich +dann in einer persistenten Shell. + +Um dich nun von der \textsl{Screen-Session} abkoppeln (\textsl{detachen}) +kannst du die Escape-Sequenz \texttt{Strg+a} gefolgt von \textsl{d} +eingeben. Du kannst nun dein Terminal schließen und alles innerhalb der +Screen-Session läuft weiter. + +Um dich später wieder zu der Session zu verbinden, führst du \texttt{screen -r} +aus. Nun solltest du dich wieder dort befinden, wo du dich vorher detached hast. + +Mit screen kannst du auch mehrere Terminals in einem Terminal verwalten. +Dafür kannst du, wenn du dich in einer screen-Session befindest, mit \texttt{Strg+a} +gefolgt von \texttt{c} ein neues Terminal starten. Um zwischen den Terminals zu wechseln +kannst du \texttt{Strg+a} gefolgt von einer Nummer zwischen \texttt{0} und +\texttt{9} eingeben, um zu dem entsprechenden Terminal zu wechseln. Alternativ kannst du +zweimal hintereinander \texttt{Strg+a} eingeben, um zum zuletzt genutzten Terminal zu +wechseln. + +Für weitere Infos zur Benutzung, bspw. auch zum parallelen Anzeigen mehrerer Terminals, +kannst du mit \texttt{man screen} in der Manpage nachschauen. diff --git a/Doku/screenshot/dia.png b/Doku/screenshot/dia.png new file mode 100644 index 0000000000000000000000000000000000000000..47129361cd9d61cf227582840d1d1a4079de9793 Binary files /dev/null and b/Doku/screenshot/dia.png differ diff --git a/Doku/screenshot/firefox.png b/Doku/screenshot/firefox.png new file mode 100644 index 0000000000000000000000000000000000000000..ba9f5355bfe4dcafee519e3bf41723a5fa98f59d Binary files /dev/null and b/Doku/screenshot/firefox.png differ diff --git a/Doku/screenshot/gartenranken.png b/Doku/screenshot/gartenranken.png new file mode 100644 index 0000000000000000000000000000000000000000..738ed5947ed3047c2db28fac2fd2ecab2d6c9f1e Binary files /dev/null and b/Doku/screenshot/gartenranken.png differ diff --git a/Doku/screenshot/gimp.jpg b/Doku/screenshot/gimp.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e3e29b35010fff605d0287bd6758e6296c9f429e Binary files /dev/null and b/Doku/screenshot/gimp.jpg differ diff --git a/Doku/screenshot/gufw.png b/Doku/screenshot/gufw.png new file mode 100644 index 0000000000000000000000000000000000000000..af8a88cdf9d576d4b77e9010e30645b09734c3ef Binary files /dev/null and b/Doku/screenshot/gufw.png differ diff --git a/Doku/screenshot/inkscape.png b/Doku/screenshot/inkscape.png new file mode 100644 index 0000000000000000000000000000000000000000..13a1447e6d02bcaedaf599500c029f2351a47ab5 Binary files /dev/null and b/Doku/screenshot/inkscape.png differ diff --git a/Doku/screenshot/kile.png b/Doku/screenshot/kile.png new file mode 100644 index 0000000000000000000000000000000000000000..c50ab49fbd782e0f6b1c32701e3fdc7425017883 Binary files /dev/null and b/Doku/screenshot/kile.png differ diff --git a/Doku/screenshot/pidgin.jpg b/Doku/screenshot/pidgin.jpg new file mode 100644 index 0000000000000000000000000000000000000000..630c4207274aec63b17a53582314abc5f89ec693 Binary files /dev/null and b/Doku/screenshot/pidgin.jpg differ diff --git a/Doku/screenshot/texstudio.png b/Doku/screenshot/texstudio.png new file mode 100644 index 0000000000000000000000000000000000000000..b32f34fdfcc0e065b0c0de99218a30bda5f42daa Binary files /dev/null and b/Doku/screenshot/texstudio.png differ diff --git a/Doku/screenshot/thunderbird.png b/Doku/screenshot/thunderbird.png new file mode 100644 index 0000000000000000000000000000000000000000..ed74049a2cf500229314eb8e2f7fc9ae42c4e6d9 Binary files /dev/null and b/Doku/screenshot/thunderbird.png differ diff --git a/Doku/screenshot/xfce.jpg b/Doku/screenshot/xfce.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f1a9197ccdc8cff02491cda6c995b07d6a4d5bbb Binary files /dev/null and b/Doku/screenshot/xfce.jpg differ diff --git a/Doku/singular.tex b/Doku/singular.tex new file mode 100644 index 0000000000000000000000000000000000000000..dbeba47821ab59c984ad9bdff69835de5622e145 --- /dev/null +++ b/Doku/singular.tex @@ -0,0 +1,4 @@ +\subsection{Singular} +Singular ist ein mächtiges CAS (Computer Algebra System, Algebraisches Rechnen mit dem Computer) für Probleme der kommutativen und nicht-kommutativen Algebra, der algebraischen Geometrie und Singularitätstheorie. Nicht-Mathematiker benötigen es nicht. + +Gestartet werden kann es über das Terminal mit \texttt{Singular}. diff --git a/Doku/smartmontools.tex b/Doku/smartmontools.tex new file mode 100644 index 0000000000000000000000000000000000000000..c800765bb417abb4f16e94fdd94bff6591ed285a --- /dev/null +++ b/Doku/smartmontools.tex @@ -0,0 +1,15 @@ +\subsection{smartmontools} +SMART ist eine Technologie zur Fehlerüberprüfung von Festplatten (HDD und SSD). Im normalen Betrieb sammelt die Festplatten automatisch statistische Daten über ihren Zustand. Mit den Smartmontools können diese Werte abgefragt werden und ausführlichere Tests gestartet werden. + +Smartmontools installiert das Kommandozeilenprogramm smartctl, welches die Daten der Festplatten (HDD, SSD) ausliest und bewertet.\\ +Der nachfolgende Aufruf gibt eine kurze Information über den aktuellen Zustand der Festplatte sda:\\ +\texttt{sudo smartctl -H /dev/sda}\\ +Die Ausgabe sollte ähnlich der folgenden sein: +\begin{verbatim} +smartctl 6.3 2014-07-26 r3976 [x86_64-linux-3.16.1-aufs0] (local build) +Copyright (C) 2002-14, Bruce Allen, Christian Franke, www.smartmontools.org + +=== START OF READ SMART DATA SECTION === +SMART overall-health self-assessment test result: PASSED +\end{verbatim} +Sollte hier in der letzten Zeile nicht "PASSED" stehen liegt ein Hardware Fehler vor und die Platte sollte schnellst möglich getauscht werden, da Datenverlust nicht mehr auszuschließen ist. diff --git a/Doku/spyder.tex b/Doku/spyder.tex new file mode 100644 index 0000000000000000000000000000000000000000..b42630949d4c9fb8223971f8f9a81005dea45460 --- /dev/null +++ b/Doku/spyder.tex @@ -0,0 +1,3 @@ +\subsection{spyder} +Spyder ist eine Entwicklungsumgebung für Python. +Aus dem Terminal öffnet man spyder mit \texttt{spyder3} bzw. \texttt{spyder}, je nach Pythonversion. diff --git a/Doku/ssh.tex b/Doku/ssh.tex new file mode 100644 index 0000000000000000000000000000000000000000..8328c308e9b8ef2ed3b916974767aeaf02c8c1be --- /dev/null +++ b/Doku/ssh.tex @@ -0,0 +1,20 @@ +\subsection{ssh} \label{ch_ssh} +"`SSH"' steht für "`SecureSHell"' und ist ein Kommandozeilenprogramm, mit dem man sich auf einen entfernten Rechner, auf dem ein OpenSSH-Server (siehe auch \ref{ch_sshd}) läuft, verbinden kann, für dem man einen entsprechenden Zugang hat. (Zum Beispiel wenn man einen Institutsaccount erhält oder auch einen Server betreibt.) Die Verbindung erfolgt verschlüsselt. + +Im einfachsten Fall erfolgt ein Aufruf nach dem Schema +\begin{verbatim} +ssh user@server +\end{verbatim} +aus einem Terminal, wobei "`server"' die IP-Adresse oder Domain des entfernten Rechners ist und "`user"' ein auf diesem Server existierender Nutzer, der die Berechtigung hat, sich per SSH mit dem Server zu verbinden. + +Dann wird der Nutzer nach seinem Passwort gefragt und nach erfolgreichem Verbindungsaufbau erhält man eine Shell auf dem entfernten Rechner. + +Konkret heißt das, das man alles tun kann, was man auch tun könnte, wenn man an dem entfernten Rechner sitzen und ein Terminal benutzen würde. Das ist zum Beispiel praktisch, wenn man auf dem RWTH-Compute-Cluster (siehe \url{https://doc.itc.rwth-aachen.de/display/CC/Home}) Programme laufen lassen möchte. + +Standardmäßig kann man hier noch keine graphischen Programme benutzen. Aber SSH kann weit mehr; es kann eben auch graphische Programme vom Server auf den lokalen Rechner streamen, und überhaupt Netzwerktraffic, der durch einen lokalen Port geht, über einen Server umleiten. Ferner kann es auch für den Dateiaustausch zwischen Dateisystemen verwendet werden. + +Wer mehr zur Benutzung von SSH wissen möchte, dem sei die Manpage +\begin{verbatim} +man ssh +\end{verbatim} +oder der Eintrag zu SSH im Ubuntuusers-Wiki (\url{http://wiki.ubuntuusers.de/SSH}) empfohlen. diff --git a/Doku/subversion.tex b/Doku/subversion.tex new file mode 100644 index 0000000000000000000000000000000000000000..b5964f0a1181b6fb97be678a97a571648d49a0ce --- /dev/null +++ b/Doku/subversion.tex @@ -0,0 +1,11 @@ +\subsection{Subversion} +Subversion (SVN) ist ein zentrales (serverbasiertes) Versionsverwaltungssystem für die Kommandozeile. Es eignet sich besonders für gemeinsames Programmieren von Software und wird hauptsächlich per Kommandozeile bedient. + +Meistens bekommst du zum Arbeiten eine URL von einem bestehenden Projekt. +Mittels \texttt{svn checkout URL} holst du dir eine lokale Kopie des Arbeitsverzeichnisses, in der du Änderungen tätigen kannst.\\ +Nachdem du den Quelltext bzw. die Dateien angepasst hast, kannst du mittels \texttt{svn add} die Änderungen dem SVN-System mitteilen.\\ +Nachdem SVN über Änderungen informiert wurde, kannst du diese mit \texttt{svn commit} an den zentralen Server übertragen.\\ +Bevor du anfängst, an einem Projekt weiterzuarbeiten, solltest du alle Änderungen auf dem Server abfragen. Dies kannst du mittels \texttt{svn update} erledigen.\\ +Nachdem du Änderungen hinzugefügt hast ist es sinnvoll, die Änderungen nochmal zu checken. Dies kannst du mit \texttt{svn status} erledigen. + +Für weitere, umfangreichere Hilfe sollte man am besten die Hilfe mittels \texttt{svn help} oder das Handbuch mittels \texttt{man svn} konsultieren. diff --git a/Doku/swi-prolog.tex b/Doku/swi-prolog.tex new file mode 100644 index 0000000000000000000000000000000000000000..9102b829dade60bd7f7d89e4f428b2c498c2583e --- /dev/null +++ b/Doku/swi-prolog.tex @@ -0,0 +1,5 @@ +\subsection{swi-prolog} +swi-prolog installiert einen Prolog-Interpreter. +Prolog wird in der Vorlesung \enquote{Programmierung} eingeführt und benötigt. + +Beispielaufruf im Terminal: Mit \texttt{swipl prolog1.pl} kompiliert und lädt man die Datei \texttt{prolog1.pl}; nun können Anfragen an prolog1 gestellt werden. diff --git a/Doku/texstudio.tex b/Doku/texstudio.tex new file mode 100644 index 0000000000000000000000000000000000000000..48558dd32ff7eacdb7082b36268d8d62f0fe8b76 --- /dev/null +++ b/Doku/texstudio.tex @@ -0,0 +1,13 @@ +\subsection{TeXstudio} +TeXstudio ist ein Standard \LaTeX-Editor mit grafischer Oberfläche, welcher die wichtigsten Bibliotheken und Funktionen mitbringt. + +\includegraphics[width=0.95\linewidth]{screenshot/texstudio} + +\LaTeX\ ist eine mächtige Textsatzsprache, die sich zum Erstellen von Dokumenten eignet. +Dokumente werden in Klartext erstellt und anschließend nach PDF compiliert. +Das Speichern im Klartextformat ist hilfreich für Versionsverwaltungssysteme wie git oder svn und ermöglicht das Dokument auch ohne spezielle Software zu Lesen und zu Bearbeiten. + +Du kannst dir auch das \LaTeX-Kompendium (\url{https://de.wikibooks.org/wiki/LaTeX-Kompendium}) anschauen. + +Aufzurufen über die grafische Oberfläche oder im Terminal mit: +\texttt{texstudio} diff --git a/Doku/thunderbird.tex b/Doku/thunderbird.tex new file mode 100644 index 0000000000000000000000000000000000000000..267032db0df14e46e79c33b2918f460842900db6 --- /dev/null +++ b/Doku/thunderbird.tex @@ -0,0 +1,9 @@ +\subsection{Thunderbird} +\includegraphics[width=0.95\linewidth]{screenshot/thunderbird} + +Thunderbird ist dein Standardmailprogramm, damit kannst du beispielsweise deine RWTH-Mails abrufen. +Eine Anleitung, wie du Thunderbird einrichtest findest du unter + +\scalebox{0.9}{\url{https://help.itc.rwth-aachen.de/en/service/1jefzdccuvuch/article/614566f01671435d9f0e267e49aeae54/}} + +Inbesondere sollte darauf geachtet werden, dass Benutzername gegenüber dem server das Kürzel (z.B. \texttt{ab123456@rwth-aachen.de}), die E-Mail-Addresse hingegen der Name (z.B. \texttt{vorname.nachname@rwth-aachen.de} oder \texttt{vorname.nachname1@rwth-aachen.de} falls es den Namen schon gab). Wenn das Kürzel als e-Mail-Addresse genutzt wird, erlaubt der RWTH-Mailserver euch nicht Mails zu verschicken. diff --git a/Doku/tmux.tex b/Doku/tmux.tex new file mode 100644 index 0000000000000000000000000000000000000000..b7dee5451665b44a83f4d7342f8da460962d03b4 --- /dev/null +++ b/Doku/tmux.tex @@ -0,0 +1,5 @@ +\subsection{tmux}\label{ch_tmux} +Tmux ist ein weiterer Terminalmultiplexer für die Kommandozeile. +Die Benutzung und Funktionalität ist ähnlich der von \texttt{screen}. + +Eine detailierte Beschreibung findest du mit \texttt{man screen} in der Manpage. diff --git a/Doku/tofromdos.tex b/Doku/tofromdos.tex new file mode 100644 index 0000000000000000000000000000000000000000..af81e0ed3b4886638325650c22fbebf7fae51f82 --- /dev/null +++ b/Doku/tofromdos.tex @@ -0,0 +1,21 @@ +\section{tofrodos} +Das Packet \textsl{tofrodos} fasst die Programme \texttt{todos} und +\texttt{fromdos} zusammen, welche DOS- und UNIX-Textdateien ineinander +konvertiert. + +Während in UNIX-Textdateien die Zeilen lediglich mit einem Zeilenumbruch +enden, besitzen DOS-Dateien zusätzlich noch ein Zeichen für den +Wagenrücklauf, ein Relikt aus Zeiten von Fernschreibern. + +Dieses Zeichen kann unter UNIX, wenn man eine Textdatei von einem Windows-System +hat, zu Problemen führen. Umgekehrt hat Windows mit Textdateien von Unix manchmal +Probleme. + +Um nun die Dateien umzuwandeln kann eine Datei mit DOS-Zeilenumbrüchen mit +\texttt{fromdos \textsl{dateiname}} in Unix-Kodierung umgewandelt und umgekehrt +eine Datei in Unix-Kodierung mit \texttt{todos \textsl{dateiname}} in DOS-Kodierung +umgewandelt werden. + +Dass es Probleme mit der Kodierung gibt kannst du beispielsweise erkennen, wenn +du unter Linux seltsame Zeichen am Zeilenende (bspw. \texttt{\textasciicircum M}) siehst oder wenn +du unter Windows alles in einer Zeile stehen hast. diff --git a/Doku/unrar-free.tex b/Doku/unrar-free.tex new file mode 100644 index 0000000000000000000000000000000000000000..31626e8487e36ba21cc11541c15e28eb46fce015 --- /dev/null +++ b/Doku/unrar-free.tex @@ -0,0 +1,5 @@ +\subsection{unrar-free} +Unrar-free ist ein Kommandozeilen-Tool zum Entpacken von Rar-Archiven. Es wird unter anderem vom KDE Tool Ark, welches in den Dateimanager integriert ist, verwendet. +Aufzurufen mit: \texttt{unrar-free 'Argumente'}. + +Eine Übersicht der möglichen Argumente gibt es im Handbuch des Paketes, welches auf der Kommandozeile über \texttt{man unrar-free} angezeigt werden kann. diff --git a/Doku/valgrind.tex b/Doku/valgrind.tex new file mode 100644 index 0000000000000000000000000000000000000000..ac17097e3b5a83713323cfbc608969fdfbdbe11e --- /dev/null +++ b/Doku/valgrind.tex @@ -0,0 +1,6 @@ +\subsection{Valgrind} +Valgrind ist ein Werkzeug zum Debuggen von compilierten Programmen, insbesondere von Speicherfehlern. +Wenn man beispielsweise ein C oder C++-Programm geschrieben hat, kann man es mit Flags zum Debuggen (\texttt{-g} bei gcc und g++) kompilieren und danach mit \texttt{valgrind a.out} ausführen. +Valgrind bietet darüber hinaus Auswertungswerkzeuge, die bei der Programmoptimierung helfen, wie das dynamic heap analysis tool DHAT\footnote{siehe \url{https://valgrind.org/docs/manual/dh-manual.html}}. + +Weitere Informationen findet man in der Manpage \texttt{man valgrind} oder Online auf \url{https://valgrind.org/docs/manual/}. diff --git a/Doku/vim.tex b/Doku/vim.tex new file mode 100644 index 0000000000000000000000000000000000000000..ec02e823980cbbba6952fee79a90133772dcd5f7 --- /dev/null +++ b/Doku/vim.tex @@ -0,0 +1,13 @@ +\subsection{Vim} +Vim ist ein sehr mächtiger, kommandozeilenbasierter Texteditor. Dieser ist zum einen, +wenn du nur eine Kommandozeile zur Verfügung hast, sehr praktisch, ist zum anderen +aber auch als normaler Editor interessant. + +Wenn du \texttt{vim} von der Kommandozeile startest befindest du dich zuerst im +\textsl{normal mode}. Um nun etwas zu editiern musst du mit \texttt{i} in den +\textsl{insert mode} wechseln. Dort kannst du die Datei nun einfach editieren. +Um vim wieder zu verlassen wechselst du mit \texttt{Esc} wieder in den +\textsl{normal mode} und kannst nun mit \texttt{:wq} die Datei speichern und schließen. + +Eine Einführung in vim kannst du mit \texttt{vimtutor} erhalten und in vim +kannst du aus dem \textsl{normal mode} heraus mit \texttt{:help} Hilfe aufrufen. diff --git a/Doku/vlc.tex b/Doku/vlc.tex new file mode 100644 index 0000000000000000000000000000000000000000..22a2676857769faddab1f2735758d16a023d3a07 --- /dev/null +++ b/Doku/vlc.tex @@ -0,0 +1,3 @@ +\subsection{VLC} +Der VLC Mediaplayer ist ein Programm zum Abspielen von Audio- und Videodateien. Im Terminal wird er mit \texttt{vlc} gestartet. +Eine unvollständige Dokumentation ist unter \url{https://wiki.videolan.org/Documentation:Documentation} zu finden. diff --git a/Doku/wxmaxima.tex b/Doku/wxmaxima.tex new file mode 100644 index 0000000000000000000000000000000000000000..de46170e2a038423a7573c2d24c5c7a699012481 --- /dev/null +++ b/Doku/wxmaxima.tex @@ -0,0 +1,4 @@ +\subsection{wxMaxima} +wxMaxima ist eine grafische Oberfläche für das Computer-Algebra-System Maxima, mit dem man symbolisch rechnen kann. + +Es wird im Terminal mit \texttt{wxmaxima} aufgerufen. diff --git a/Doku/x2go.tex b/Doku/x2go.tex new file mode 100644 index 0000000000000000000000000000000000000000..ceb5b10d4bce778a32cca47d2c5c993b4ceb325f --- /dev/null +++ b/Doku/x2go.tex @@ -0,0 +1,13 @@ +\subsection{x2go} +Immer mal wieder kommt es vor, dass man im Studium Software benutzen möchte/muss, die nicht auf dem heimischen Rechner zur Verfügung stehen; wohl aber auf Institutspoolrechnern, die über SSH (siehe Abschnitt \ref{ch_ssh}) über das Internet erreichbar sind. (In der Physik zum Beispiel liegt das nicht-freie Computeralgebrasystem "`MAPLE"' auf den CIP-Pool-Rechnern bereit.) + +Wenn man nun nicht immer ins Institut fahren will, bietet SSH einem Erreichbarkeit über das Internet, aber wenn Programme mit graphischer Oberfläche benötigt werden, ist das X-Forwarding über SSH -- je nach Geschwindigkeit der Verbindung -- alles andere als performant. + +Manche Institute bieten zwischenzeitlich zusätzlich zum normalen SSH-Server auch einen x2go-Server, der eine einfache graphische Verbindung zum Institutsrechner gestattet. + +Hat man auf dem eigenen PC einen x2go-Client (zu finden -- je nach Benutzeroberfläche -- unter den Internetprogrammen) installiert, kann man sich über ein halbwegs intuitives Interface eine Verbindung konfigurieren und hat am Ende auf seinem lokalen Rechner den Desktop laufen, den man bei der Anmeldung am Server sehen würde. + +Der Vorteil an x2go ist, dass es sich automatisch per SSH verbindet, damit also sämtlicher Traffic verschlüsselt erfolgt, und es die Datenkompression sehr gut automatisch regelt. Es ist also auch ohne vertiefte Fähigkeiten der Kommandozeilennutzung nutzbar und dabei auch bei langsameren Internetverbindungen noch recht performant. + +Weitere Dokumentation findet man auf der x2go-Website: +\url{http://wiki.x2go.org/doku.php} diff --git a/Doku/xubuntu-desktop.tex b/Doku/xubuntu-desktop.tex new file mode 100644 index 0000000000000000000000000000000000000000..8d5e75cb6500e2532535a2298782bfc06be0a548 --- /dev/null +++ b/Doku/xubuntu-desktop.tex @@ -0,0 +1,4 @@ +\subsection{xubuntu-Desktop} +Xubuntu-Desktop installiert das XFCE-Desktop-Environment (kurz XFCE) zusammen mit den zugehörigen Standardprogrammen. +XFCE ist etwas ressourcenschonender als KDE oder Gnome und ist damit ggf. besser für Netbooks oder ältere Geräte geeignet. +Es hat dabei ein anderes Bedienkonzept als KDE oder Gnome. Nachdem xubuntu-desktop installiert wurde, kann es im Login-Manager vor dem Login ausgewählt werden. diff --git a/Doku/zsh.tex b/Doku/zsh.tex new file mode 100644 index 0000000000000000000000000000000000000000..1f955b16847aeca9ef32a0c69dfe0fdb56662542 --- /dev/null +++ b/Doku/zsh.tex @@ -0,0 +1,19 @@ +\subsection{zsh} + +Die \texttt{zsh} ist eine Shell. Wenn du ein Terminal\footnote{auch bekannt unter den Begriffen \emph{Konsole}, \emph{Kommandozeile}, \emph{Eingabeaufforderung}, ...} öffnest, kannst du dort Programme starten und andere Kommandos ausführen. Das Programm, das dir im Terminal diese Möglichkeit zur Verfügung stellt ist eine sogenannte Shell. In der Standardkonfiguration ist diese Shell \texttt{bash}; die \texttt{zsh} ist eine Alternative. + +Du startest die \texttt{zsh} durch Eingabe dieser drei Buchstaben in deinem Terminal. Wenn du \texttt{exec} (und ein Leerzeichen) davor schreibst, sorgst du dafür, dass deine aktuelle Shell beim Wechsel beendet wird. Um die Shell dauerhaft zu ändern gib: +\begin{lstlisting} +chsh +Passwort: +Login-Shell für lumi wird geändert. +Geben Sie einen neuen Wert an oder drücken Sie ENTER für den Standardwert + Login-Shell [/bin/bash]: /usr/bin/zsh +\end{lstlisting} + + +Doch was bietet die \texttt{zsh} im Gegensatz zum Standard? Wenn du sie das erste Mal startest, durchläufst du einen Konfigurationsassistenten mit dem du die vielen Funktionen so einstellen kannst, wie du es möchtest. Dabei werden dir einige sinnvolle Möglichkeiten vorgeschlagen, die du einfach auswählen kannst. Dir wird auffallen, dass dir umfangreiche Möglichkeiten zur automatischen Vervollständigung und Korrektur deiner Eingaben angeboten werden. + +Eine Shell bietet dir umfangreiche Möglichkeiten zur Steuerung und Benutzung deines Systems und lässt sich ebenso sehr gut skripten, d.h. automatisieren. +%Zur Einrichtung und grundlegenden Benutzung wird es bei der KISS\footnote{Kommunikation und Installation schöner Software, unsere Linux Workshops} einen Workshop geben. Auch im Internet findest du Lernmaterial. +Die \texttt{zsh} ist POSIX-kompatibel, d.h. du kannst sehr viele Anleitungen zu Shells im Allgemeinen benutzen, die du im Internet finden kannst. diff --git a/README.md b/README.md index ce7c70fa2d434ba9ecdd02ae471f3c0e8784247c..e0e9bbbeab8a5ab2e955b9e13075974f363ca770 100644 --- a/README.md +++ b/README.md @@ -9,9 +9,10 @@ Its name could mean at least one of: # How to use it 1. Setup a manjaro system, either a virtual machine or preferably directly on hardware. Manjaro in docker doesn't work. -2. Install the dependencies. You can do that by going to [manjaro-dependencies](manjaro-dependencies), executing `makepkg` and then installing the created pavkage with `sudo pacman -U ./tardis-dev-dependencies-1.0-1-x86_64.pkg.tar.zst`. -3. You call [assemble\_image.sh](assemble_image.sh). This takes some time. -4. The compiled image is at `workspace/output.img`. It is an MBR/DOS-partitioned image, that can be copied byte-by-byte onto a stick (for example with `sudo dd if=/workspace/output.img of=/dev/sdX bs=4M conv=fsync oflag=direct status=progress` replacing `/dev/sdX`, with your stick's device-file and sudo with the privilege elevation tool of your choice). +1. Install the dependencies for calamares. You can do that by going to [calamares-dev-dependencies](calamares-dev-dependencies), executing `makepkg` and then installing the created package with `sudo pacman -U ./calamares-dev-dependencies-*.pkg.tar.zst`. +1. Install the dependencies. You can do that by going to [manjaro-dependencies](manjaro-dependencies), executing `makepkg` and then installing the created package with `sudo pacman -U ./tardis-dev-dependencies-*.pkg.tar.zst`. +1. You call [assemble\_image.sh](assemble_image.sh). This takes some time. +1. The compiled image is at `workspace/output.img`. It is an MBR/DOS-partitioned image, that can be copied byte-by-byte onto a stick (for example with `sudo dd if=/workspace/output.img of=/dev/sdX bs=4M conv=fsync oflag=direct status=progress` replacing `/dev/sdX`, with your stick's device-file and sudo with the privilege elevation tool of your choice). # How it works internally We use the [well documented](https://github.com/calamares/calamares/wiki/Deploy-Guide) [calamares](https://github.com/calamares/calamares) installer and the [somewhat documented](https://wiki.manjaro.org/index.php?title=Build_Manjaro_ISOs_with_buildiso) [buildiso manjaro-tool](https://gitlab.manjaro.org/tools/development-tools/manjaro-tools). diff --git a/assemble_image.sh b/assemble_image.sh index de31b6ab4cf46842191b94af33a8e75c746e63bb..88e47df4e17cbdca465893812e31ba94ecacb866 100755 --- a/assemble_image.sh +++ b/assemble_image.sh @@ -5,6 +5,7 @@ set -x # Params WORKSPACE="workspace" +REBUILD_CALAMARES=1 # Helpers REGULAR_USER="${SUDO_USER:-${USER}}" @@ -12,14 +13,6 @@ REGULAR_USER_HOME=$(getent passwd "$REGULAR_USER" | cut -d: -f6) ISO_PROFILES_REPO="$REGULAR_USER_HOME/iso-profiles" PROFILE="$ISO_PROFILES_REPO/osak/lip" -# https://stackoverflow.com/questions/1527049/how-can-i-join-elements-of-an-array-in-bash -function join_by { - local d=${1-} f=${2-} - if shift 2; then - printf %s "$f" "${@/#/$d}" - fi -} - rm -rf "$ISO_PROFILES_REPO" rm -rf workspace mkdir workspace @@ -27,8 +20,8 @@ chmod a+rx workspace git clone --depth 1 https://gitlab.manjaro.org/profiles-and-settings/iso-profiles.git "$ISO_PROFILES_REPO" mkdir -p "$PROFILE" rsync -a --copy-links "$ISO_PROFILES_REPO/manjaro/kde/" "$PROFILE" -grep '^[^|#]*L[^|]*|' packages | cut -d'|' -f 2 >> "$PROFILE/Packages-Live" -grep '^[^|#]*D[^|]*|' packages | cut -d'|' -f 2 >> "$PROFILE/Packages-Desktop" +grep '^[^|#]*L[^|]*|' packages | cut -d'|' -f 2 | tr " " "\n" >> "$PROFILE/Packages-Live" +grep '^[^|#]*D[^|]*|' packages | cut -d'|' -f 2 | tr " " "\n" >> "$PROFILE/Packages-Desktop" remove_live_package() { pkg="${1:?}" @@ -45,76 +38,119 @@ remove_desktop_package() { remove_live_package "manjaro-hello" remove_desktop_package "manjaro-hello" -LIVE="$PROFILE/live-overlay" +mkdir -p "$PROFILE/live-overlay/usr/share/grub/cfg" +rsync --recursive grub-cfg/ "$PROFILE/live-overlay/usr/share/grub/cfg" + +set +e # buildiso returns a 1 on partial builds +buildiso -p lip -x -k linux515 # build only filesystems, but not the iso +BO="$?" +set -e +[[ 1 -eq "$BO" ]] + +create_offline_repo() { + local DESKTOPFS="/var/lib/manjaro-tools/buildiso/lip/x86_64/desktopfs" + local PACMAN_DB="$DESKTOPFS/var/lib/pacman" + mkdir -p "$PACMAN_DB" + local PACMAN_CACHE="$DESKTOPFS/var/cache/pacman/pkg" + mkdir -p "$PACMAN_CACHE" + grep '^[^|#]*[cCmMpPiI][^|]*|' packages | cut -d'|' -f 2 | tr '\n' ' ' > "$WORKSPACE/offline_packages.txt" + local CACHE="${XDG_CACHE_HOME:-"$HOME/.cache"}/lip-build/pacman" + mkdir -p "$CACHE/db" + mkdir -p "$CACHE/pkg" + pacman -Sy --dbpath "$CACHE/db" + rsync --recursive "$CACHE/db/" "$PACMAN_DB" + pacman -S --dbpath "$PACMAN_DB" --print --noconfirm $(cat "$WORKSPACE/offline_packages.txt") | sed "s#^http://#https://#" > "$WORKSPACE/packages_urls.txt" + wget --no-verbose --show-progress --continue --input-file <(grep "^https://" "$WORKSPACE/packages_urls.txt") --directory-prefix "$CACHE/pkg" + wget --no-verbose --show-progress --continue --input-file <(grep "^https://" "$WORKSPACE/packages_urls.txt" | sed 's#$#.sig#') --directory-prefix "$CACHE/pkg" + rsync --files-from <(grep "^file://" "$WORKSPACE/packages_urls.txt" | sed "s#file:///var/cache/pacman/pkg/##") /var/cache/pacman/pkg "$CACHE/pkg" + rsync --files-from <(grep "^file://" "$WORKSPACE/packages_urls.txt" | sed "s#file:///var/cache/pacman/pkg/##" | sed 's#$#.sig#') /var/cache/pacman/pkg "$CACHE/pkg" + rsync --recursive "$CACHE/pkg/" "$PACMAN_CACHE" +} + +LIVE="/var/lib/manjaro-tools/buildiso/lip/x86_64/livefs" mkdir -p "$LIVE/usr/share/applications" ETC_CAL="$LIVE/etc/calamares" mkdir -p "$ETC_CAL/modules" -mkdir -p "$LIVE/usr/share/grub/cfg" -rsync --recursive grub-cfg/ "$LIVE/usr/share/grub/cfg" -cp "calamares.desktop" "$LIVE/usr/share/applications/calamares.desktop" +mkdir -p "$LIVE/usr/share/tardis" +rsync --recursive "Doku" "$LIVE/usr/share/tardis" +cp "packages" "$LIVE/usr/share/tardis/Doku" +cp "tardis-make-doku.sh" "$LIVE/usr/bin/tardis-make-doku.sh" configure_package_chooser() { local ID="${1:?}" local WILDCARD="${2:?}" - local EN="${3:?}" - local DE="${4:?}" -cat > "$ETC_CAL/modules/packages_$ID.conf" << EOF + local DEFAULT_WILDCARD="${3:?}" + local EN="${4:?}" + local DE="${5:?}" + local OUT="$ETC_CAL/modules/packages_$ID.conf" +cat > "$OUT" << EOF mode: optionalmultiple method: packages labels: step: "$EN" step[de]: "$DE" -default: id0 - -items: +default: EOF + local i=0 + while read -r line; do + id="id$i" + i="$((i + 1))" + if (echo "$line" | grep "^[^|#]*[$DEFAULT_WILDCARD][^|]*|"); then + echo "- $id" >> "$OUT" + fi + done < <(grep "^[^|#]*[$WILDCARD$DEFAULT_WILDCARD][^|]*|" packages) + + echo "" >> "$OUT" + echo "items:" >> "$OUT" + + i=0 while read -r line; do name="$(echo "$line" | cut -d'|' -f 3)" - packages="$(echo "$line" | cut -d'|' -f 2)" + packages="$(echo "$line" | cut -d'|' -f 2 | sed 's/ /, /g')" id="id$i" i="$((i + 1))" - echo "- id: $id" >> "$ETC_CAL/modules/packages_$ID.conf" - echo " name: \"$name\"" >> "$ETC_CAL/modules/packages_$ID.conf" - echo " packages: [$(join_by ", " $packages)]" >> "$ETC_CAL/modules/packages_$ID.conf" - done < <(grep "^[^|#]*[$WILDCARD][^|]*|" packages) + echo "- id: $id" >> "$OUT" + echo " name: \"$name\"" >> "$OUT" + echo " packages: [$packages]" >> "$OUT" + done < <(grep "^[^|#]*[$WILDCARD$DEFAULT_WILDCARD][^|]*|" packages) } -configure_package_chooser common "cC" "Common Packages" "Allgemeine Software" -configure_package_chooser mathe "mM" "Mathematics Packages" "Mathematik-Software" -configure_package_chooser physik "pP" "Physics Packages" "Physik-Software" -configure_package_chooser informatik "iI" "Computer Science Packages" "Informatik-Software" +configure_package_chooser common "c" "C" "Common Packages" "Allgemeine Software" +configure_package_chooser mathe "m" "M" "Mathematics" "Mathematik" +configure_package_chooser physik "p" "P" "Physics" "Physik" +configure_package_chooser informatik "i" "I" "Computer Science" "Informatik" cp calamares-packages.conf "$ETC_CAL/modules/packages.conf" - chown "$REGULAR_USER:$REGULAR_USER" -R "$ISO_PROFILES_REPO" -create_offline_repo() { - local DESKTOPFS="/var/lib/manjaro-tools/buildiso/lip/x86_64/desktopfs" - local PACMAN_DB="$DESKTOPFS/var/lib/pacman" - mkdir -p "$PACMAN_DB" - local PACMAN_CACHE="$DESKTOPFS/var/cache/pacman/pkg" - mkdir -p "$PACMAN_CACHE" - grep '^[^|#][cCmMpPiI][^|]*|' packages | cut -d'|' -f 2 | tr '\n' ' ' > "$WORKSPACE/offline_packages.txt" - CACHE="${XDG_CACHE_HOME:-"$HOME/.cache"}/lip-build/pacman" - mkdir -p "$CACHE/db" - mkdir -p "$CACHE/pkg" - pacman -Sy --dbpath "$CACHE/db" - rsync -a "$CACHE/db/" "$PACMAN_DB" - pacman -S --dbpath "$PACMAN_DB" --cachedir "$CACHE/pkg" --downloadonly --noconfirm $(cat "$WORKSPACE/offline_packages.txt") - rsync -a "$CACHE/pkg/" "$PACMAN_CACHE" -} +create_offline_repo -set +e # buildiso returns a 1 on partial builds -buildiso -p lip -x -k linux515 # build only filesystems, but not the iso -BO="$?" -set -e -[[ 1 -eq "$BO" ]] +install_custom_calamares() { + local CACHE="${XDG_CACHE_HOME:-"$HOME/.cache"}/lip-build/calamares-build" + if [ "$REBUILD_CALAMARES" -ne 0 ] || ! ls "$CACHE"/calamares*.pkg.tar.* > /dev/null 2&>1 + then + local BUILD_DIR="workspace/calamares-build" + mkdir -p "$BUILD_DIR" + cp "calamares/PKGBUILD" "$BUILD_DIR" + cd "$BUILD_DIR" + chown lars:lars -R . + doas -u lars makepkg + cd - + rsync -a "$BUILD_DIR"/ "$CACHE" + fi + mkdir -p /var/lib/manjaro-tools/buildiso/lip/x86_64/livefs/var/cache/pacman/pkg + cp "$CACHE"/*pkg.tar.* "$LIVE/var/cache/pacman/pkg" + tar --directory "$LIVE" --extract --same-owner --same-permissions --file "$CACHE"/calamares*pkg.tar.* usr/bin usr/lib +} +install_custom_calamares # override some of the generated files cp -f calamares-settings.conf /var/lib/manjaro-tools/buildiso/lip/x86_64/livefs/etc/calamares/settings.conf -create_offline_repo +cp "calamares.desktop" "$LIVE/usr/share/applications/calamares.desktop" + +rsync --recursive makedoku /var/lib/manjaro-tools/buildiso/lip/x86_64/livefs/usr/lib/calamares/modules set +e # buildiso returns a 1 on partial builds buildiso -p lip -zc -k linux515 # and then build the iso diff --git a/calamares-build-doku.conf b/calamares-build-doku.conf new file mode 100644 index 0000000000000000000000000000000000000000..50714c4690cc464f8688d140d68de4b7bb73a301 --- /dev/null +++ b/calamares-build-doku.conf @@ -0,0 +1,10 @@ +dontChroot: true +timeout: 300 # seconds + +script: "/usr/bin/tardis-make-doku.sh ${USER} ${ROOT}" + +i18n: + name: "Build LIP Documentation" + name[de]: "Baue LIP Dokumentation" + +# vim: filetype=yaml tabstop=2 shiftwidth=2 expandtab diff --git a/calamares-dev-dependencies/PKGBUILD b/calamares-dev-dependencies/PKGBUILD new file mode 100644 index 0000000000000000000000000000000000000000..843a698d40ec4dca686eb2fda119cd773bfd5c49 --- /dev/null +++ b/calamares-dev-dependencies/PKGBUILD @@ -0,0 +1,16 @@ +# Maintainer: Philip Müller <philm[at]manjaro[dog]org> + +pkgname=calamares-dev-dependencies +pkgver=3.2.61 +_pkgver=3.2.61 +pkgrel=4 +_commit=8a6b3d19e17d5a92d0ad8f743c55965f03ff9fac +pkgdesc='dev dependencies for calamares' +arch=('i686' 'x86_64') +license=(GPL) +url="https://gitlab.manjaro.org/applications/calamares" +license=('LGPL') +depends=('kconfig' 'kcoreaddons' 'kiconthemes' 'ki18n' 'kio' 'solid' 'yaml-cpp' 'kpmcore>=22.04.0' 'mkinitcpio-openswap' + 'boost-libs' 'ckbcomp' 'hwinfo' 'qt5-svg' 'polkit-qt5' 'gtk-update-icon-cache' 'plasma-framework' + 'qt5-xmlpatterns' 'squashfs-tools' 'libpwquality' 'appstream-qt' 'icu' 'python' 'qt5-webview' + 'ttf-comfortaa' 'extra-cmake-modules' 'qt5-tools' 'qt5-translations' 'git' 'boost' 'kparts' 'kdbusaddons') diff --git a/calamares-settings.conf b/calamares-settings.conf index 21a184d80fe9fbf0fa2cf75e06b002bbe44b0fec..41c7e9dcd5290349334e82b0a6f7cdebb2a523f8 100644 --- a/calamares-settings.conf +++ b/calamares-settings.conf @@ -50,6 +50,7 @@ sequence: - bootloader - postcfg - packages + - makedoku - umount - show: - finished diff --git a/calamares/PKGBUILD b/calamares/PKGBUILD new file mode 100644 index 0000000000000000000000000000000000000000..d1314e8deb4fea3631ea994d73eee6ff6e26c437 --- /dev/null +++ b/calamares/PKGBUILD @@ -0,0 +1,92 @@ +# Maintainer: Philip Müller <philm[at]manjaro[dog]org> + +pkgname=calamares +pkgver=3.2.61 +_pkgver=3.2.61 +pkgrel=4 +_branch="3.2.x-stable" +pkgdesc='Distribution-independent installer framework' +arch=('i686' 'x86_64') +license=(GPL) +url="https://git.fsmpi.rwth-aachen.de/osak/calamares" +license=('LGPL') +depends=('kconfig' 'kcoreaddons' 'kiconthemes' 'ki18n' 'kio' 'solid' 'yaml-cpp' 'kpmcore>=22.04.0' 'mkinitcpio-openswap' + 'boost-libs' 'ckbcomp' 'hwinfo' 'qt5-svg' 'polkit-qt5' 'gtk-update-icon-cache' 'plasma-framework' + 'qt5-xmlpatterns' 'squashfs-tools' 'libpwquality' 'appstream-qt' 'icu' 'python' 'qt5-webview' + 'ttf-comfortaa') +makedepends=('extra-cmake-modules' 'qt5-tools' 'qt5-translations' 'git' 'boost' 'kparts' 'kdbusaddons') +backup=('usr/share/calamares/modules/bootloader.conf' + 'usr/share/calamares/modules/displaymanager.conf' + 'usr/share/calamares/modules/initcpio.conf' + 'usr/share/calamares/modules/unpackfs.conf') + +source+=( + "$pkgname-$pkgver-$pkgrel.tar.gz::$url/-/archive/$_branch/$pkgname-$_branch.tar.gz" + 'https://gitlab.manjaro.org/codesardine/calamares/-/commit/b140b67c9fddb96701e46d23e9a72ddfbe77e0d0.patch' + ) +sha256sums=( + 'SKIP' + '39c38180b6c7d6088984c300e3fdf125b571525d1d252b59a52388e1780f98e4' + ) + +prepare() { + mv ${srcdir}/calamares-${_branch} ${srcdir}/calamares-${pkgver} + cd ${srcdir}/calamares-${pkgver} + sed -i -e 's/"Install configuration files" OFF/"Install configuration files" ON/' CMakeLists.txt + + # change version + sed -i -e "s|$pkgver|$_pkgver|g" CMakeLists.txt + #_ver="$(cat CMakeLists.txt | grep -m3 -e " VERSION" | grep -o "[[:digit:]]*" | xargs | sed s'/ /./g')" + _ver="$pkgver" + printf 'Version: %s-%s' "${_ver}" "${pkgrel}" + echo "" + sed -i -e "s|\${CALAMARES_VERSION_MAJOR}.\${CALAMARES_VERSION_MINOR}.\${CALAMARES_VERSION_PATCH}|${_ver}-${pkgrel}|g" CMakeLists.txt + sed -i -e "s|CALAMARES_VERSION_RC 1|CALAMARES_VERSION_RC 0|g" CMakeLists.txt + + # https://github.com/calamares/calamares/issues/2014 + sed -i -e 's|"$@"|"-D6" "$@"|g' data/calamares_polkit + + # change branding + sed -i -e "s/default/manjaro/g" src/branding/CMakeLists.txt + + # https://github.com/calamares/calamares/issues/1945 + patch -Np1 -i ../b140b67c9fddb96701e46d23e9a72ddfbe77e0d0.patch +} + +build() { + cd ${srcdir}/calamares-${pkgver} + + mkdir -p build + cd build + cmake .. \ + -DCMAKE_BUILD_TYPE=Debug \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DWITH_KF5DBus=OFF \ + -DBoost_NO_BOOST_CMAKE=ON \ + -DSKIP_MODULES="initramfs initramfscfg \ + dummyprocess dummypython \ + dummycpp dummypythonqt \ + services-openrc" + make +} + +package() { + cd ${srcdir}/calamares-${pkgver}/build + make DESTDIR="$pkgdir" install + install -Dm644 "../data/manjaro-icon.svg" "$pkgdir/usr/share/icons/hicolor/scalable/apps/calamares.svg" + install -Dm644 "../data/calamares.desktop" "$pkgdir/usr/share/applications/calamares.desktop" + install -Dm755 "../data/calamares_polkit" "$pkgdir/usr/bin/calamares_polkit" + install -Dm644 "../data/49-nopasswd-calamares.rules" "$pkgdir/etc/polkit-1/rules.d/49-nopasswd-calamares.rules" + chmod 750 "$pkgdir"/etc/polkit-1/rules.d + + # rename services-systemd back to services + mv "$pkgdir/usr/lib/calamares/modules/services-systemd" "$pkgdir/usr/lib/calamares/modules/services" + mv "$pkgdir/usr/share/calamares/modules/services-systemd.conf" "$pkgdir/usr/share/calamares/modules/services.conf" + sed -i -e 's/-systemd//' "$pkgdir/usr/lib/calamares/modules/services/module.desc" + sed -i -e 's/-systemd//' "$pkgdir/usr/share/calamares/settings.conf" + + # fix branding install + cp -av "../src/branding/manjaro" "$pkgdir/usr/share/calamares/branding/" +} + diff --git a/extract_iso_fs.sh b/extract_iso_fs.sh index d4f14d11045a400f7df6ce4e8ba07fa948d73834..9d8861b8797ec46663c2d89aef70e817b0e2068f 100755 --- a/extract_iso_fs.sh +++ b/extract_iso_fs.sh @@ -1,6 +1,6 @@ #!/bin/bash -ISO="/mnt/osiris/distros/manjaro/manjaro-kde-22.0.0-220816-linux515.iso" +ISO="/mnt/osiris/distros/manjaro/manjaro-kde-21.3.7-220816-linux515.iso" MOUNTED_ISO="/tmp/manjaro-iso" DEST="iso-content" rm -rf "$MOUNTED_ISO" "$DEST" @@ -8,7 +8,8 @@ mkdir "$MOUNTED_ISO" mkdir "$DEST" LOOP=$(losetup --partscan --find --show "$ISO") -mount /dev/loop0p1 "$MOUNTED_ISO" +mount -o ro /dev/loop0p1 "$MOUNTED_ISO" +rsync -a "$MOUNTED_ISO" "$DEST" unsquashfs -dest "$DEST/livefs" "$MOUNTED_ISO/manjaro/x86_64/livefs.sfs" unsquashfs -dest "$DEST/desktopfs" "$MOUNTED_ISO/manjaro/x86_64/desktopfs.sfs" unsquashfs -dest "$DEST/mhwdfs" "$MOUNTED_ISO/manjaro/x86_64/mhwdfs.sfs" diff --git a/makedoku/main.py b/makedoku/main.py new file mode 100644 index 0000000000000000000000000000000000000000..dfe4b645855694cbd74fdf1ef21ad3748f5fa782 --- /dev/null +++ b/makedoku/main.py @@ -0,0 +1,48 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# === This file is part of Calamares - <https://calamares.io> === +# +# SPDX-FileCopyrightText: 2014 Teo Mrnjavac <teo@kde.org> +# SPDX-FileCopyrightText: 2017 Alf Gaida <agaida@siduction.org> +# SPDX-FileCopyrightText: 2017 Adriaan de Groot <groot@kde.org> +# SPDX-License-Identifier: GPL-3.0-or-later +# +# Calamares is Free Software: see the License-Identifier above. +# + +""" +=== Example Python jobmodule. + +A Python jobmodule is a Python program which imports libcalamares and +has a function run() as entry point. run() must return None if everything +went well, or a tuple (str,str) with an error message and description +if something went wrong. +""" + +import libcalamares +import os +from time import gmtime, strftime, sleep + +import gettext +_ = gettext.translation("calamares-python", + localedir=libcalamares.utils.gettext_path(), + languages=libcalamares.utils.gettext_languages(), + fallback=True).gettext + + +def pretty_name(): + return _("Build Documentation") + +status = _("Build Dokumentation") + +def pretty_status_message(): + return status + +def run(): + username = libcalamares.globalstorage.value("username") + root = libcalamares.globalstorage.value("rootMountPoint") + + libcalamares.utils.host_env_process_output(["/usr/bin/tardis-make-doku.sh", username, root]) + + return None diff --git a/makedoku/module.desc b/makedoku/module.desc new file mode 100644 index 0000000000000000000000000000000000000000..38b59953bedce4d8227a0a06d948fe39759ee78e --- /dev/null +++ b/makedoku/module.desc @@ -0,0 +1,6 @@ +type: "job" +name: "makedoku" +interface: "python" +script: "main.py" + +# vim: filetype=yaml diff --git a/manjaro-dependencies/PKGBUILD b/manjaro-dependencies/PKGBUILD index d27515d7e283d5ae1b8f6a8d0363745fb5e26092..78660215120ca3636a003db4462e5acfec410adf 100644 --- a/manjaro-dependencies/PKGBUILD +++ b/manjaro-dependencies/PKGBUILD @@ -7,4 +7,4 @@ pkgdesc="LIP automation tool dependencies" arch=(x86_64) url="https://git.fsmpi.rwth-aachen.de/osak/tardis" license=('GPL3') -depends=(zsh coreutils git rsync grep pacman wget squashfs-tools manjaro-tools-iso util-linux) +depends=(zsh coreutils git rsync grep pacman wget squashfs-tools manjaro-tools-iso util-linux calamares-dev-dependencies tar) diff --git a/manjaro.txt b/manjaro.txt index 386902676cb137a79a85e89c331185e15bdac8cf..32bbea42634e812d64cb52995623b2a0b0b3abbb 100644 --- a/manjaro.txt +++ b/manjaro.txt @@ -18,3 +18,8 @@ TODO: - manjaro-news und weitere plasma-browser-integration deaktivieren? - Use remmina (https://wiki.archlinux.org/title/Remmina) instead of x2goclient to avoid AUR? (Also update docs in that case) - add Doku for preinstalled programs like the music player Elisa. +- same application switch on QWERTZ layout? There is currently no way to use the default shortcut (see https://bugreports.qt.io/browse/QTBUG-90611). Maybe use an own shortcut (like Alt+1)? Should work if we add it in .config/kglobalshortcutsrc of the target user home. But that doesn't exist during installation, but is probably created on first login. What happens if I add a file with only the one line for our custom shortcut. +- don't show package Doku twice, if they are in multiple groups. But in which Doku section should they be? + - remove sections or replace them with one-to-many doku sections (each package has exactly 1 doku section) + - or only show them in the section of the group, they were selected in? Harder to implement and may still put a package in 2 sections if it was selected in both, though that might be intended behavior. +- Add programs like cheese/vlc etc. to livefs and/or desktopfs, to test video/audio IO (audio could use pavucontrol or my alsa-wrapper script) diff --git a/packages b/packages index 7f0e3ee4983c0bb5a4b593ece15c63a6d43ebf3a..6445cd2eebccabde372a10b3162d2958a4235927 100644 --- a/packages +++ b/packages @@ -7,14 +7,13 @@ # m -> linuxparty-Bereich "Mathematik" ("M" für vorausgewählt) # p -> linuxparty-Bereich "Physik" ("P" für vorausgewählt) # i -> linuxparty-Bereich "Informatik" ("I" für vorausgewählt) -# Achtung: Bei L vorsichtig sein (keine KDE Pakete) sonst wird viel Zeug beim Booten upgedatet! C |gufw|gufw: Firewall Frontend C |keepassxc|KeePassXC: Passwortmanager C |inkscape|inkscape: Bildbearbeitung (Vektorbasiert) C |gimp|gimp: Bildbearbeitung (Pixelbasiert) c |zsh zsh-doc|zsh: Alternative Shell c |fish|fish: The Friendly Interactive Shell - cM |remmina|x2go: Remote Desktop Client + cM |remmina|remmina: Remote Desktop Client m |singular|singular: Tool für die Vorlesung Computeralgebra m |gap gap-doc gap-packages|gap: Groups, Algorithms, Programming - ein System für diskrete Mathematik M |codeblocks|codeblocks: IDE für das C++-Praktikum @@ -38,7 +37,7 @@ Pi|valgrind|valgrind: Debugging- und Profilingtool, welches bei der Entwicklung von Programmen hilft Pi|gdb|GNU Debugger: Anderes Debugging-Tool -#Desktop stuff for Kubuntu +#Desktop stuff for KDE D |thunderbird|Thunderbird: E-Mail-Client C |texstudio|texstudio: Graphischer LaTeX-Editor c |kile|kile: Alternativer graphischer LaTeX-Editor @@ -49,9 +48,6 @@ D |p7zip| D |unrar| -#Zenity for Linuxparty.sh - |zenity| - #System stuff, e.g. gcc and efibootmgr D |automake| D |cmake| @@ -71,7 +67,7 @@ LD |git| LD |gparted| #texlive - C |texlive-bibtexextra texlive-latexextra texlive-fontsextra psutils texlive-pstricks texlive-science texlive-pictures git-latexdiff tex-gyre-fonts texlive-publishers texlive-core texlive-bin texinfo|LaTeX mit vielen Paketen für wissenschaftliche Arbeiten +LC |texlive-bibtexextra texlive-latexextra texlive-fontsextra psutils texlive-pstricks texlive-science texlive-pictures tex-gyre-fonts texlive-publishers texlive-core texlive-bin texinfo|LaTeX mit vielen Paketen für wissenschaftliche Arbeiten C |texlive-music texlive-games t1utils texlive-formatsextra texinfo texlive-humanities|Zusätzliche Fonts und Pakete für LaTeX #german language support diff --git a/tardis-make-doku.sh b/tardis-make-doku.sh new file mode 100755 index 0000000000000000000000000000000000000000..276d11e98eb64a2c145928c090151f7fb7492249 --- /dev/null +++ b/tardis-make-doku.sh @@ -0,0 +1,56 @@ +#!/bin/bash + +set -e +set -x + +USER="${1?}" +ROOT="${2?}" +export HOME="$ROOT/home/$USER" +BUILD="tmp.tex" + +cd /tmp +rsync -a /usr/share/tardis/Doku/ /tmp + +append_package() { + local package="${1?}" + local file="$package.tex" + if [ -f "$file" ] + then + cat "$file" >> "$BUILD" + fi +} + +append_group() { + local group_name="${1?}" + local wildcard="${2?}" + local group_header=0 # the header of this group was appended + while read package + do + if ! pacman --query --explicit --sysroot "$ROOT" "$package" + then + continue + fi + if [ "$group_header" -eq 0 ] # only append header before the first entry and don't add it if there is no entry + then + append_package "$group_name" + fi + group_header=1 + append_package "$package" + done < <(grep "^[^|#]*[$wildcard][^|]*|" packages | cut -d'|' -f 2 | tr " " "\n") +} + +rm -f "$BUILD" # clear build on to allow rerunnning this script +append_package "HEADER" +append_group "COMMON" "cCdD" +append_group "MATHEMATIK" "mM" +append_group "PHYSIK" "pP" +append_group "INFORMATIK" "iI" +append_package "FOOTER" + +pdflatex "$BUILD" + +chroot "$ROOT" sudo -u "$USER" xdg-user-dirs-update +XDG_DESKTOP_DIR="$(chroot "$ROOT" sudo -u "$USER" xdg-user-dir DESKTOP)" +mv "${BUILD%tex}pdf" "$ROOT$XDG_DESKTOP_DIR/LIP-Doku.pdf" + +# vim: tabstop=2 shiftwidth=2 expandtab