Linux Linux Anfänger - Debian 11 auf X270 für Python-Programmierung

Linux Betriebssystem

Kalusha9

Member
Themenstarter
Registriert
23 Aug. 2010
Beiträge
155
Hallo zusammen,

nach einiger Überlegung habe ich mich vergangene Woche dafür entschieden, in die Welt der Programmierung einzusteigen und Python zu lernen. Verbinden möchte ich dies gleichzeitig mit dem Erlernen von Linux. Für diesen Zweck habe ich mir ein gebrauchtes X270 zugelegt und hierauf Debian 11 Gnome installiert, von wo ich gerade diesen Thread verfasse.

Für die Einarbeitung in Linux benötige ich ein wenig Hilfe, insbesondere was die Verwendung des Terminals und die Installation von Software angeht. Gibt es hier eine gute Übersicht der wichtigsten Befehle und wie man Software(-pakete) installiert bzw. wie man herausfindet, wie die benötigten Pakete überhaupt heißen ? Aktuell habe ich noch ein jungfräuliches Debian 11 und mein nächster Schritt wäre jetzt die Installation von Python 3.10 sowie PyCharm.

Für Hilfestellung und Ratschläge bedanke ich mich im voraus recht herzlich !
 
Erste Quelle sollte da das Debian-Wiki selber sein.

Hier hast Du noch die Paketverwaltung beschrieben, die Konsole und hier noch die wichtigsten Befehle. Da Ubuntu auch eine Debian-basierte Distribution ist, ist auch die Syntax identisch.

Debian setzt voreingestellt noch einen separaten User root für´s Administrieren. Oft ist es aber praktischer, mittels sudo vom normalen User-Account aus zu arbeiten. Das muß bei Debian dann noch eingerichtet werden.
 
Hallo Kalusha9,

Debian 11 beinhaltet Python 3.9 als Paketquelle. Mit dieser Version kannst du als Anfänger erst mal arbeiten. PyCharm kannst du dir kostenlos auf der Pycharm Website als Community Version als Tarball (tar.gz) herunterladen.
https://www.jetbrains.com/pycharm/download/download-thanks.html?platform=linux&code=PCC

Mit der Archivverwaltung öffnen und in den Persönlichen Ordner entpacken. Den Terminal öffnen und in den PyCharm Ordner wechseln mit cd pycharm-community-2022.1.1/

Mit dem Befehl ./pycharm.sh ausführen. Es gibt mit cat Install-Linux-tar.txt eine Englischsprache Installationsanleitung ausführlich.

Vielleicht konnte ich dir damit weiterhelfen.

Gruß Marc
 
PyCharm ist meiner Meinung nach eine sehr gute IDE, die auch für Anfänger gut geeignet ist. Alternativ kann ich ansonsten noch Visual Studio Code empfehlen. Dieses gibt es auf der Webseite auch als .deb Paket, welches man herunter laden und anschließend installieren kann (Die Googlesuche nach "Debian install .deb" sollte dazu eine bebilderte Anleitung bringen).
 
Für die Einarbeitung in Linux benötige ich ein wenig Hilfe, insbesondere was die Verwendung des Terminals und die Installation von Software angeht. Gibt es hier eine gute Übersicht der wichtigsten Befehle und wie man Software(-pakete) installiert bzw. wie man herausfindet, wie die benötigten Pakete überhaupt heißen ?
Was für dich die wichtigsten Befehle sind hängt davon ab, was du tun möchtest. Allgemeine Ratschläge sind daher schwierig. Falls du grundsätzlich weißt, welchen Befehl du verwenden möchtest, dann bietet dir die Manpage des Befehls eine umfassende (und daher manchmal erschlagende) Referenz zur Benutzung:
Code:
$ man BEFEHL

Das Standardwerkzeug zur Paketverwaltung unter Debian in der Konsole ist "apt". Damit kannst du z.B. nach "python" suchen:
Code:
$ apt search python
Nun wirst du eine unüberschaubar lange Liste an Paketen bekommen. Warum das so ist, verrät die manpage zu apt:
man apt schrieb:
search (apt-cache(8))
search kann zur Suche nach den angegebenen regex(7)-Begriffen in der Liste verfügbarer Pakete und zur Anzeige der Treffer
benutzt werden.
"apt" ist also (auch) ein Frontend für "apt-cache" und die Suchstrings sind Reguläre Ausdrücke.
Letzteres bedeutet, dass "apt-cache search" hier alle Pakete ausgeben wird, die "python" im Namen haben. Bei geneuerer Betrachtung der Ausgabe sehen wir aber, dass da noch viel mehr Pakete ausgegeben werden, die "python" nicht im Namen haben.
Warum ist das so?:
man apt-cache schrieb:
search regulärer_Ausdruck...
search führt eine Volltextsuche in der Liste aller verfügbaren Pakete für das angegebene reguläre Muster gemäß POSIX
durch, siehe regex(7). Es durchsucht die Paketnamen und die Beschreibungen nach einem Vorkommen des regulären Ausdrucks
und gibt den Paketnamen mit einer kurzen Beschreibung, einschließlich virtueller Paketnamen, aus. Wenn --full angegeben
wurde, ist die Ausgabe gleich der, die show für jedes passende Paket erzeugt. Wenn --names-only angegeben wurde, wird die
lange Beschreibung nicht durchsucht, sondern nur der Paketname und die bereitgestellten Pakete.
Es werden also nicht nur die Paketnamen durchsucht, sondern auch deren Beschreibungen. Wenn wir das nicht wollen, können wir die Suche mittels des Schalters "--names-only" auf die Paketnamen begrenzen:
Code:
$ apt search --names-only python
Die Liste ist immer noch ziemlich lang, denn wir bekommen alle Pakete zurück, die irgendwo im Paketnamen "python" zu stehen haben. Wir wissen aber, dass hier eine Regex-Suche stattfindet. Also können wir die Suche weiter eingrenzen, und z.B. ausdrücklich nur nach "python" suchen:
Code:
$ apt search --names-only ^python$'
Hmm, die Liste ist leer. Ein Paket das tatsächlich nur "python" heißt, gibt es also nicht. Wir ahben aber vieleicht vorher in der Ausgabe irgendwas mit "python3" gesehen. Und tatsächlich, das Paket gibt es:
Code:
$ apt search --names-only '^python3$'
Sortierung… Fertig
Volltextsuche… Fertig
python3/stable,now 3.9.2-3 amd64  [Installiert,automatisch]
  Interaktive objektorientierte Hochsprache (Python3-Standardversion)
Nun könnten wir es installieren (wenn es das bei mir nicht schon wäre):
Code:
# apt install python3

Es gibt diverse Alternativen zu apt. Genannt seien hier v.A. apt-get (wofür apt ein Frontend ist), aptitude und das grafische Programm synaptic.
Außerdem gibt es noch die Online-Paketsuche [1], welche als Referenz nützlich ist.

Aktuell habe ich noch ein jungfräuliches Debian 11 und mein nächster Schritt wäre jetzt die Installation von Python 3.10 sowie PyCharm.
Wie bereits von @returnofdarkness erwähnt, enthält Debian stable Python 3.9. Falls du nicht ausdrücklich Version 3.10 benötigst, solltest du die offizielle Paketquelle benutzen.


Debian setzt voreingestellt noch einen separaten User root für´s Administrieren. Oft ist es aber praktischer, mittels sudo vom normalen User-Account aus zu arbeiten. Das muß bei Debian dann noch eingerichtet werden.
Das ist nicht grundsätzlich falsch, aber es gibt gute Gründe, root- und Nutzeraccount streng zu trennen.
Die heute verbreitete Art der sudo-Nutzung, wie sie von Ubuntu popularisiert wurde, ist eigentlich eine Zweckentfremdung des Werkzeugs und bringt gewisse Probleme mit sich.
Ich würde daher die Nutzung von sudo nach Ubuntu-Vorbild nicht zur allgemeinen Empfehlung für Einsteiger machen.


PyCharm ist meiner Meinung nach eine sehr gute IDE, die auch für Anfänger gut geeignet ist. Alternativ kann ich ansonsten noch Visual Studio Code empfehlen. Dieses gibt es auf der Webseite auch als .deb Paket, welches man herunter laden und anschließend installieren kann (Die Googlesuche nach "Debian install .deb" sollte dazu eine bebilderte Anleitung bringen).
Meine Erfahrungen zu Python sind sehr begrenzt, daher mag das tatsächlch die praktikabelste Lösung sein.
Aus Sicht eines erfahrenen Debiananwenders werfe ich hier aber mal eine Fremdquellenwarnung. [2] Falls es keine guten Gründe dagegen gibt, sollte man nach Möglichkeit Software aus den offiziellen Paketquellen verwenden.


[1] https://www.debian.org/distrib/packages
[2] https://wiki.debian.org/DontBreakDebian
 
[2] Falls es keine guten Gründe dagegen gibt, sollte man nach Möglichkeit Software aus den offiziellen Paketquellen verwenden.
[2] https://wiki.debian.org/DontBreakDebian
Das sehe ich bei Python grade anders. Python Libraries, solltest Du lieber mittels pip installieren und nicht aus den Debian Paketquellen, sonst gerätst Du schnell in unübersichtliche Abhängigkeiten, zwischen Debian Versionen und Python Package Index Versionen, da es nicht alle Python Libraries in den Debian Paketquellen gibt.
 
Da der Tip mit "man" gefallen ist, "apropos" könnte auch hilfreich sein. Die Qualität, Komplettheit und Lokalisierung der man Pages ist mittlerweile überraschend gut.

Ansonsten würde ich sagen Google ist wie so oft der beste Freund.

Nicht von unbekannten Konzepten die mit unbekannten Begrifflichkeiten erläutert werden abschrecken lassen. Anfangs kämpft man immer damit bis die Puzzleteile anfangen ineinander zu fallen.

Am besten Google fragen was man meint machen zu wollen und die Antworten durchhangeln. Mit dem so erworbenen Wissen kann man richtigere Fragen stellen.

Viel Spaß bei der Reise. :)
 
ansonsten noch Visual Studio Code empfehlen
Der Empfehlung schließe ich mich unbedingt an. Ich hatte früher immer die fette Eclipse mit Python-Modul genutzt, aber seit mir ein Kollege die Code-Geschichte von MIcrosoft empfohlen hat ... tut es mittlerweile gar nicht mehr weh, auf Linux ein echt gutes MS-Produkt zu nutzen :)

solltest Du lieber mittels pip installieren

Und noch mal volle Zustimmung. Ich hab grad nicht auf dem Schirm, ob pip beim jungfräulichen debian11 schon dabei ist. Falls nicht:

Bash:
sudo apt install python3-pip

Weiter oben hieß es, die Nutzung von sudo unter debian ist nicht ganz erstrebenswert. Das ist sicherlich eine Ansichtssache. Ich für meinen Teil nutze sudo immer und gerne, auch unter debian, jedoch nicht auf exponierten Systemen - was Dein Notebook aber ja nicht ist. Falls Du sudo nutzen möchtest, musst Du noch den entsprechenden User in die Gruppe sudo aufnehmen, nachdem sudo per apt installiert wurde, also als root:

Bash:
gpasswd -a [user] sudo

Und allgemein: Tolles Vorhaben, ich wünsch Dir viel Erfolg.
 
Wie umfangreich sollen die Programme werden?

Ich habe angefangen zu programmieren bevor es die Entwicklungspakete gab. Also mit einem Texteditor paar Zeilen eingehackt. Die heutigen Entwicklungssystem schaufeln zum Teil gigabyteweise Daten auf die SSD und wenn dann an ein 10 KB Quelltext gearbeitet werden soll fühlt sich das komisch an. Andererseits bin ich beeindruckt über den Komfort und Funktionsvielfalt. Letzteres empfinde ich als zweischneidige Sache denn das bedeutet auch, dass man sie auch bedienen können muss.
 
Das sehe ich bei Python grade anders. Python Libraries, solltest Du lieber mittels pip installieren und nicht aus den Debian Paketquellen, sonst gerätst Du schnell in unübersichtliche Abhängigkeiten, zwischen Debian Versionen und Python Package Index Versionen, da es nicht alle Python Libraries in den Debian Paketquellen gibt.
Wie gesagt, ich schreibe aus der Perspektive eines erfahrenen Debian-Anwenders - du vermutlich eher aus der eines
Python-Entwicklers.
Beide Standpunkte haben ihre Berechtigung, sind aber letztendlich wohl Ausdruck eines "nih"-Syndroms. Das Entscheidende dürfte hier sein, dass die Wahrheit eben nicht in der Mitte liegt, sondern dass man sich möglichst konsequent für eines der Extreme entscheiden sollte.

Weiter oben hieß es, die Nutzung von sudo unter debian ist nicht ganz erstrebenswert.
Gegen die Nutzung von sudo unter Debian ist überhaupt nichts einzuwenden. Das Problem ist die von Ubuntu popularisierte Nutzung von sudo, dem regulären Nutzer durch Angabe seines eigenen Passworts umfassende root-Rechte zu verschaffen - und das auch noch für einen langen Zeitraum (15 Minuten?), statt pro Befehl.
Dazu war sudo nicht gedacht. Der eigentliche Zweck von sudo ist es, Nutzer A zu ermöglichen, konkrete Befehle als Nutzer B auszuführen - gern auch unter Nutzung von Passwort A um Nutzer A nicht Passwort B verraten zu müssen - oder auch ganz ohne Passwort, weil dieser konkrete Befehl unkritisch ist und man nicht möchte, dass Nutzer A ständig sein Passwort eingibt und irgendwann gegenüber Passwortabfragen abstumpft.
Nutzer B kann dabei auch mal root sein. Und vermutlich lassen sich auch Szenarien finden, in denen eine zeitbasierte, statt einer befehlsbasierten Rechteeinräumung Sinn ergibt.
Wenn man aber alle diese Möglichkeiten von sudo in einen Topf wirft und kräftig umrührt, dann entstehe solche Situationen wie unter Ubuntu, dass Nutzer A für ein eigentlich unkritisches Kommando sein Passwort eingibt, welches dann in der aktuellen Shell 15 Minuten lang gilt und wirklich alles ermöglicht, er dann in die Küche geht um sich einen Kaffee zu holen, und in der Zwischenzeit kommt Nutzer C vorbei, welcher A nicht leiden kann und treibt Schabernack in der offenen Shell mit root-Rechten.
 
Wenn man aber alle diese Möglichkeiten von sudo in einen Topf wirft und kräftig umrührt, dann entstehe solche Situationen wie unter Ubuntu, dass Nutzer A für ein eigentlich unkritisches Kommando sein Passwort eingibt, welches dann in der aktuellen Shell 15 Minuten lang gilt und wirklich alles ermöglicht, er dann in die Küche geht um sich einen Kaffee zu holen, und in der Zwischenzeit kommt Nutzer C vorbei, welcher A nicht leiden kann und treibt Schabernack in der offenen Shell mit root-Rechten.
Wenn man seinen Rechner verläßt, soll an ihn sperren! Das Problem sitzt also, wie meistens, vor dem Rechner.
 
Wenn man seinen Rechner verläßt, soll an ihn sperren! Das Problem sitzt also, wie meistens, vor dem Rechner.
Richtig. Und wir wissen alle, wie wirksam Arbeitsanweisungen sind.
Daher machen einige Unternehmen die USB-Ports ihrer Rechner physisch unbrauchbar, obwohl es eigentlich reichen würde, alle Mitarbeiter darauf hinzuweisen, keine vor der Haustür gefundenen USB-Sticks einzustecken.
 
Jooo, wohl war. Aber wir reden hier ja von einem Menschen, die sich zu Hause auf die Suche nach der fehlenden Klammer machen möchte :) Wie das in größeren Organisationen läuft, weiß jeder, der sich mit dem Zeug schon mal beschäftigen musste.
Aber noch mal das Thema sudo: DU hattest weiter oben schon recht, dass sudo ohne Einschränkung schon ein Fall für sich ist und wenige sich die Mühe machen, dass Ding so zuzunageln, dass im Fall der Fälle nicht gleich carte blanche besteht.
 
Guten Morgen zusammen,

erst einmal vielen Dank für die vielen hilfreichen Hinweise :) Hätte ehrlich gesagt nicht mit so viel Feedback gerechnet, aber umso besser.

Das Debian-Wiki habe ich in meine Favoriten aufgenommen, dass wird dann zukünftig eine meiner ersten Anlaufstellen sein.

Als Benutzer habe ich aktuell nur meinen persönlichen User angelegt, keinen zusätzlich reinen Administrator user. Installationen über die Shell erfolgen mit dem Zusatz sudo, so war das auch vor einigen Jahren bei meinen ersten Gehversuchen mit Ubuntu. Gibt es unter Debian Grund/Notwendigkeit einen seperaten Admin-Benutzer einzurichten ?

Python 3.9 war bei Debian 11 bereits vorinstalliert, PyCharm habe ich durch die Hilfe hier im Thread mittlerweile auch installiert bekommen. Die Entwicklungsumgebung ist somit schon mal (grundsätzlich) lauffähig. Da hier die Frage nach dem Anwendungsgebiet aufkam: Ich arbeite in Finanzbereich ich möchte Python später auch in diesem Bereich einsetzen. Zielsetzung ist also ultimativ die Prozessoptimierung sowie das automatisierte Verarbeiten großer Datenmengen.

Heute morgen habe ich noch TLP in Version 1.5. installiert, allerdings bekomme ich hier nachdem sich der Bildschirm/Laptop nach inaktivität gesperrt hat, nach dem erneuten Login immer die Aufforderung zur Eingabe meines Passworts.
 
Aber noch mal das Thema sudo: DU hattest weiter oben schon recht, dass sudo ohne Einschränkung schon ein Fall für sich ist und wenige sich die Mühe machen, dass Ding so zuzunageln, dass im Fall der Fälle nicht gleich carte blanche besteht.
sudo ist ja unter Debian standardmäßig sicher konfiguriert (macht gar nix). Man mus sich dafür also eigentlich keine Mühe machen.
Es sei denn, man vergibt im Debian-Installer kein root-Passwort, dann wird sudo automatisch installiert und nach Ubuntu-Manier konfiguriert. Und das ist halt in gewissen Situationen fragwürdig.


Als Benutzer habe ich aktuell nur meinen persönlichen User angelegt, keinen zusätzlich reinen Administrator user. Installationen über die Shell erfolgen mit dem Zusatz sudo, so war das auch vor einigen Jahren bei meinen ersten Gehversuchen mit Ubuntu. Gibt es unter Debian Grund/Notwendigkeit einen seperaten Admin-Benutzer einzurichten ?
Du hast in jedem Fall einen User "root". Dieser entspricht unter Linux/Unix dem "Administrator" unter Windows.
Was du verrmutlich nicht getan hast, ist root im Installer ein eigenes Passwort zu geben. Dann wird sudo so wie beschrieben vorkonfiguriert.

Heute morgen habe ich noch TLP in Version 1.5. installiert, allerdings bekomme ich hier nachdem sich der Bildschirm/Laptop nach inaktivität gesperrt hat, nach dem erneuten Login immer die Aufforderung zur Eingabe meines Passworts.
Ob es einen Zusammenhang mit TLP gibt weiß ich nicht, aber es ist durchaus sinnvoll, zum Entsperren des Bildschirms eine Passworttabfrage einzubauen.
Falls du die nicht haben willst, lässt sich diese deaktivieren. Ich weiß spontan aber nicht, ie das unter Gnome geht.
 
sudo ist ja unter Debian standardmäßig sicher konfiguriert (macht gar nix). Man mus sich dafür also eigentlich keine Mühe machen.
Es sei denn, man vergibt im Debian-Installer kein root-Passwort, dann wird sudo automatisch installiert und nach Ubuntu-Manier konfiguriert. Und das ist halt in gewissen Situationen fragwürdig.


Du hast in jedem Fall einen User "root". Dieser entspricht unter Linux/Unix dem "Administrator" unter Windows.
Was du verrmutlich nicht getan hast, ist root im Installer ein eigenes Passwort zu geben. Dann wird sudo so wie beschrieben vorkonfiguriert.

Ich muss vermutlich dazu sagen, dass ich Debian aus einem Live Image heraus installiert habe mit dem dortigen grafischen Installer. Diverse Videos/Tutorials haben dazu geraten, da der Installer komfortabler sein soll als der klassiche Debian Installer. Dieser Installer hat mich aber nie um ein root passwort gebeten, daher gehe ich davon aus, dass tatsächlich keins gesetzt ist. Sudo funktioniert mit meinem User wie von Ubuntu gewohnt.

Ob es einen Zusammenhang mit TLP gibt weiß ich nicht, aber es ist durchaus sinnvoll, zum Entsperren des Bildschirms eine Passworttabfrage einzubauen.
Falls du die nicht haben willst, lässt sich diese deaktivieren. Ich weiß spontan aber nicht, ie das unter Gnome geht.

Mein Problem ist nicht dass er mich zum entsperren des Bildschirms um mein Passwort bittet, sondern dass nachdem ich dieses getan habe ich nochmals zur Eingabe eines Passwort zwecks Legitimierung zum Versetzen des Systems in Bereitschaft geben werden. Diese Meldung habe ich erst seit ich TLP installiert habe, daher gehe ich davon aus, dass diese damit zusammenhängt.
 
Meines Wissens hat das nichts mit TLP zu tun, sondern ist eine Eigenheit von PolicyKit. Ich habe das auch auf unterschiedlichen Rechnern in unterschiedlichen Situationen: Mal wie bei dir, dass der automatische Suspend nicht eingeleitet wird, mal wird nach einem Passwort zum Entsperren das WWAN-Moduls gefragt usw.
Du kannst den Auslöser der Passwortabfrage in der Meldung einsehen (org.freedesktop.WasAuchImmer.policy). Dazu gibt es unter "/usr/share"polkit-1/actions" die zugehörige Datei die ggfls. angepasst werden muss.
 
Meines Wissens hat das nichts mit TLP zu tun, sondern ist eine Eigenheit von PolicyKit. Ich habe das auch auf unterschiedlichen Rechnern in unterschiedlichen Situationen: Mal wie bei dir, dass der automatische Suspend nicht eingeleitet wird, mal wird nach einem Passwort zum Entsperren das WWAN-Moduls gefragt usw.
Du kannst den Auslöser der Passwortabfrage in der Meldung einsehen (org.freedesktop.WasAuchImmer.policy). Dazu gibt es unter "/usr/share"polkit-1/actions" die zugehörige Datei die ggfls. angepasst werden muss.

Also bei mir verweist die Meldung auf org.freedesktop.login1.suspend. Rufe ich mir die zugehörige Datei auf, steht folgendes:

Code:
<allow_any>auth_admin_keep</allow_any>
<allow_inactive>auth_admin_keep</allow_inactive>
<allow_active>yes</allow_active>

Muss ich dort irgendwas ändern damit die Aufforderung zur Eingabe des Admin Passworts nach dem Suspend nicht mehr kommt ?
 
Die beiden "auth_admin_keep" kannst du auch durch "yes" ersetzen, dann sollte es beim nächsten Neustart klappen.
 
Die beiden "auth_admin_keep" kannst du auch durch "yes" ersetzen, dann sollte es beim nächsten Neustart klappen.
Super, damit scheint es jetzt funktioniert zu haben :)

Die nächste Frage die ich habe: Wie bekomme ich meine Dropbox in Linux eingebunden ? Auf diversen Anleitungen die ich im Netz gefunden habe ist mehrere Zeilen Code für die Konsole zu sehen, da ich aber noch nicht weiß was dieser genau bedeutet scheue ich mich noch ein wenig davor diesen einfach abzutippen.
 
  • ok1.de
  • IT Refresh - IT Teile & mehr
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben