Ergebnis 1 bis 12 von 12

Python Programmieren unter Linux Mint

  1. #1 Zitieren
    Veteran
    Registriert seit
    Jun 2012
    Beiträge
    640
    Auf meinem vorigen Windows habe ich manchmal in Python kleine Programme programmiert.
    Dafür war als Setup quasi nötig:
    Python eine "Path"-Variable zuweisen, dann Ordner anlegen, wo alle benutzten Dateien reinkommen, und dann hatte ich Editoren wie Atom und Notepad (und dann auch noch so einen kleinen Compiler, der das ganze Programm inkl. Bilddateien usw. in eine EXE komprimiert hat, aber den Namen weiß ich nicht mehr).

    Wisst ihr, wie man es auf Linux Mint einrichten muss, sodass man dort Python coden (und hinterher ausführen) kann?
    Gothicforum ist offline

  2. #2 Zitieren

    Batmanistrator
    Avatar von Thoronador
    Registriert seit
    Jul 2005
    Ort
    Morrowind, Vvardenfell-Distrikt
    Beiträge
    20.429
    Fangen wir mal an:

    Python an sich:
    Grundsätzlich sollte auf einem Linux Mint-System schon Python 3 installiert sein. Falls nicht kann man das schnell nachholen, indem man in ein Terminal folgendes eingibt:
    Code:
    sudo apt-get install python3
    Vermutlich möchte man auch noch pip, das Paketinstallationsprogramm für Python, haben:
    Code:
    sudo apt-get install python3-pip
    Das sollte schon genügen, um Pythonskripte an sich ausführen zu können.

    Editor:
    Notepad++ (ich nehme mal an, dass das mit "Notepad" gemeint war) gibt es leider nicht für Linux, das fällt also schon mal weg.
    Atom gibt es zwar für Linux, wird aber meines Wissens seit einiger Zeit nicht mehr weiterentwickelt, sodass man sich langsam nach Alternativen dafür umschauen sollte. Sofern das aber nicht stört, kann man sich noch von GitHub den Atom-Editor in der Version 1.60.0 vom März 2022 herunterladen: https://github.com/atom/atom/releases/tag/v1.60.0 Dort käme für Linux Mint die Datei "atom-amd64.deb" unter "Assets" infrage. Das ist das Installationspaket von Atom für auf Debian basierenden Linux-Distributionen, und Linux Mint gehört (mit dem Zwischenschritt über Ubuntu) dazu. Diese Datei lädt man also an den Ort seiner Wahl herunter. Im folgenden gehe ich davon aus, dass die Datei unter /home/user/Downloads/atom-amd64.deb abgespeichert wurde. Dann kann man das Paket mit folgenden zwei Befehlen im Terminal installieren:
    Code:
    sudo dpkg -i /home/user/Downloads/atom-amd64.deb
    sudo apt-get install -f
    Die erste Zeile führt die Installation durch. (Der Pfad zum heruntergeladenen Installationspaket ist ggf. anzupassen.) Da aber je nach zuvor installieren Paketen evtl. noch einige Abhängigkeiten fehlen und es deshalb zu Fehlern bei der Installation kommen könnte, wird die zweite Zeile nachgeschoben, um evtl. fehlende Abhängigkeiten ebenfalls zu installieren. Damit sollte Atom prinzipiell einsatzbereit sein.

    Als Alternativen zu Atom sind unter anderem PyCharm (davon gibt es eine kommerzielle, kostenpflichtige Variante sowie eine kostenlose Community-Edition) oder Visual Studio Code denkbar. Darauf gehe ich hier aber nicht weiter im Detail ein.

    Damit sollten die Softwaregrundlagen für das Schreiben kleiner Python-Programme vorhanden sein.
    Falls noch etwas fehlt, frage einfach.
    Thoronador ist offline

  3. #3 Zitieren
    Veteran
    Registriert seit
    Jun 2012
    Beiträge
    640
    Danke, das klingt schonmal gut!


    1)
    Beim -pip Installieren kann er einige Packages nicht finden und lässt es dann ganz sein. Habe es mehrfach probiert.
    Was könnte das sein?
    Habe auch im Internet gesehen, dass andere das hatten.


    2)
    Und kann ich programmierte Programme (ich meine bei Windows bisher abgespeichert als Textdokumente, die die Endung .py kriegen)
    einfach zwischen Linux (Mint) und Windows Rechnern hin und herschieben und es funktioniert überall ohne "Übersetzung"/Konvertierung o.Ä.?

    3)
    Und das starten einer Datei, ist das einfach: Terminal (im jeweiligen Ordner, wo die Datei liegt) öffnen und eingeben: "python dateiname.py" ?
    Läuft das so?

    4) wenn man die Python Version checken will (eigentlich "python -V") wenn man dann das "V" klein eingibt: "python -v" - was macht er dann?
    Ist das ein Befehl für was anderes? Kann man das rückgängig machen?
    Gothicforum ist offline Geändert von Gothicforum (13.03.2023 um 22:36 Uhr)

  4. #4 Zitieren

    Batmanistrator
    Avatar von Thoronador
    Registriert seit
    Jul 2005
    Ort
    Morrowind, Vvardenfell-Distrikt
    Beiträge
    20.429
    Zitat Zitat von Gothicforum Beitrag anzeigen
    1)
    Beim -pip Installieren kann er einige Packages nicht finden und lässt es dann ganz sein. Habe es mehrfach probiert.
    Was könnte das sein?
    Habe auch im Internet gesehen, dass andere das hatten.
    Hast du eine konkrete Fehlermeldung dazu? Normalerweise sind alle dafür notwendigen Pakete in den Paketquellen von Ubuntu (worauf Mint aufbaut) vorhanden, sodass es da keine Probleme geben sollte. Ich hab's mal probiert, und das läuft ohne Zwischenfälle ab. Ausgabe (im Spoiler, weil etwas länger):
    Spoiler:(zum lesen bitte Text markieren)
    Code:
    apt-get install python3-pip
    Reading package lists... Done
    Building dependency tree... Done
    Reading state information... Done
    The following additional packages will be installed:
      javascript-common libjs-jquery libjs-sphinxdoc libjs-underscore libpython3-dev libpython3.10-dev python3-dev python3-setuptools
      python3-wheel python3.10-dev
    Suggested packages:
      apache2 | lighttpd | httpd python-setuptools-doc
    The following NEW packages will be installed:
      javascript-common libjs-jquery libjs-sphinxdoc libjs-underscore libpython3-dev libpython3.10-dev python3-dev python3-pip
      python3-setuptools python3-wheel python3.10-dev
    0 upgraded, 11 newly installed, 0 to remove and 0 not upgraded.
    Need to get 7,556 kB of archives.
    After this operation, 31.8 MB of additional disk space will be used.
    Do you want to continue? [Y/n] Y
    Get:1 http://archive.ubuntu.com/ubuntu jammy/main amd64 javascript-common all 11+nmu1 [5,936 B]
    Get:2 http://archive.ubuntu.com/ubuntu jammy/main amd64 libjs-jquery all 3.6.0+dfsg+~3.5.13-1 [321 kB]
    Get:3 http://archive.ubuntu.com/ubuntu jammy/main amd64 libjs-underscore all 1.13.2~dfsg-2 [118 kB]
    Get:4 http://archive.ubuntu.com/ubuntu jammy/main amd64 libjs-sphinxdoc all 4.3.2-1 [139 kB]
    Get:5 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libpython3.10-dev amd64 3.10.6-1~22.04.2 [4,755 kB]
    Get:6 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libpython3-dev amd64 3.10.6-1~22.04 [7,166 B]
    Get:7 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 python3.10-dev amd64 3.10.6-1~22.04.2 [507 kB]
    Get:8 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 python3-dev amd64 3.10.6-1~22.04 [26.0 kB]
    Get:9 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 python3-setuptools all 59.6.0-1.2ubuntu0.22.04.1 [339 kB]
    Get:10 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 python3-wheel all 0.37.1-2ubuntu0.22.04.1 [32.0 kB]
    Get:11 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 python3-pip all 22.0.2+dfsg-1ubuntu0.2 [1,305 kB]
    Fetched 7,556 kB in 4s (2,152 kB/s)     
    debconf: delaying package configuration, since apt-utils is not installed
    Selecting previously unselected package javascript-common.
    (Reading database ... 85595 files and directories currently installed.)
    Preparing to unpack .../00-javascript-common_11+nmu1_all.deb ...
    Unpacking javascript-common (11+nmu1) ...
    Selecting previously unselected package libjs-jquery.
    Preparing to unpack .../01-libjs-jquery_3.6.0+dfsg+~3.5.13-1_all.deb ...
    Unpacking libjs-jquery (3.6.0+dfsg+~3.5.13-1) ...
    Selecting previously unselected package libjs-underscore.
    Preparing to unpack .../02-libjs-underscore_1.13.2~dfsg-2_all.deb ...
    Unpacking libjs-underscore (1.13.2~dfsg-2) ...
    Selecting previously unselected package libjs-sphinxdoc.
    Preparing to unpack .../03-libjs-sphinxdoc_4.3.2-1_all.deb ...
    Unpacking libjs-sphinxdoc (4.3.2-1) ...
    Selecting previously unselected package libpython3.10-dev:amd64.
    Preparing to unpack .../04-libpython3.10-dev_3.10.6-1~22.04.2_amd64.deb ...
    Unpacking libpython3.10-dev:amd64 (3.10.6-1~22.04.2) ...
    Selecting previously unselected package libpython3-dev:amd64.
    Preparing to unpack .../05-libpython3-dev_3.10.6-1~22.04_amd64.deb ...
    Unpacking libpython3-dev:amd64 (3.10.6-1~22.04) ...
    Selecting previously unselected package python3.10-dev.
    Preparing to unpack .../06-python3.10-dev_3.10.6-1~22.04.2_amd64.deb ...
    Unpacking python3.10-dev (3.10.6-1~22.04.2) ...
    Selecting previously unselected package python3-dev.
    Preparing to unpack .../07-python3-dev_3.10.6-1~22.04_amd64.deb ...
    Unpacking python3-dev (3.10.6-1~22.04) ...
    Selecting previously unselected package python3-setuptools.
    Preparing to unpack .../08-python3-setuptools_59.6.0-1.2ubuntu0.22.04.1_all.deb ...
    Unpacking python3-setuptools (59.6.0-1.2ubuntu0.22.04.1) ...
    Selecting previously unselected package python3-wheel.
    Preparing to unpack .../09-python3-wheel_0.37.1-2ubuntu0.22.04.1_all.deb ...
    Unpacking python3-wheel (0.37.1-2ubuntu0.22.04.1) ...
    Selecting previously unselected package python3-pip.
    Preparing to unpack .../10-python3-pip_22.0.2+dfsg-1ubuntu0.2_all.deb ...
    Unpacking python3-pip (22.0.2+dfsg-1ubuntu0.2) ...
    Setting up javascript-common (11+nmu1) ...
    Setting up python3-setuptools (59.6.0-1.2ubuntu0.22.04.1) ...
    Setting up python3-wheel (0.37.1-2ubuntu0.22.04.1) ...
    Setting up libpython3.10-dev:amd64 (3.10.6-1~22.04.2) ...
    Setting up python3-pip (22.0.2+dfsg-1ubuntu0.2) ...
    Setting up python3.10-dev (3.10.6-1~22.04.2) ...
    Setting up libjs-jquery (3.6.0+dfsg+~3.5.13-1) ...
    Setting up libjs-underscore (1.13.2~dfsg-2) ...
    Setting up libpython3-dev:amd64 (3.10.6-1~22.04) ...
    Setting up libjs-sphinxdoc (4.3.2-1) ...
    Setting up python3-dev (3.10.6-1~22.04) ...
    Processing triggers for man-db (2.10.2-1) ...

    apt-get findet alle Pakete, um python3-pip zu installieren.


    Zitat Zitat von Gothicforum Beitrag anzeigen
    2)
    Und kann ich programmierte Programme (ich meine bei Windows bisher abgespeichert als Textdokumente, die die Endung .py kriegen)
    einfach zwischen Linux (Mint) und Windows Rechnern hin und herschieben und es funktioniert überall ohne "Übersetzung"/Konvertierung o.Ä.?
    Ja, das sollte es, sofern auf den Rechnern auch Python installiert ist.

    Zitat Zitat von Gothicforum Beitrag anzeigen
    3)
    Und das starten einer Datei, ist das einfach: Terminal (im jeweiligen Ordner, wo die Datei liegt) öffnen und eingeben: "python dateiname.py" ?
    Läuft das so?
    Korrekt. Terminal auf und
    Code:
    python dateiname.py
    bzw.
    Code:
    python3 dateiname.py
    genügt, um ein Python-Script zu starten.

    Zitat Zitat von Gothicforum Beitrag anzeigen
    4) wenn man die Python Version checken will (eigentlich "python -V") wenn man dann das "V" klein eingibt: "python -v" - was macht er dann?
    Ist das ein Befehl für was anderes? Kann man das rückgängig machen?
    Laut Python-Dokumentation macht das folgendes:
    Code:
           -v     Print a message each time a module is initialized,  showing  the
                  place  (filename  or  built-in  module) from which it is loaded.
                  When given twice, print a message for each file that is  checked
                  for  when  searching for a module.  Also provides information on
                  module cleanup at exit.
    Generell startet python (ohne irgendeinen Zusatz) eine interaktive Python-Umgebung, in der man Zeile für Zeile Python-Code eingeben kann, der dann direkt ausgeführt wird. Zum Spaß kannst du ja mal
    Code:
    print("Hallo")
    eingeben und dann Enter drücken. Mit der Option -v (kleines V) wird außerdem jedes Modul angezeigt, welches von Python geladen wird, sowie der Ort, von dem das Modul geladen wird. Raus kommst du aus dieser Umgebung mit der Eingabe von
    Code:
    exit()
    und dann Enter.

    Als Alternative für die Versionsüberprüfung mit "python -V" kann man auch die lange Variante "python --version" nehmen. Ist zwar etwas mehr zu tippen, aber man muss sich nicht merken, ob das V nun groß oder klein sein muss - es ist einfach alles klein.
    Thoronador ist offline

  5. #5 Zitieren
    Veteran
    Registriert seit
    Jun 2012
    Beiträge
    640
    Zitat Zitat von Thoronador Beitrag anzeigen
    Hast du eine konkrete Fehlermeldung dazu? Normalerweise sind alle dafür notwendigen Pakete in den Paketquellen von Ubuntu (worauf Mint aufbaut) vorhanden, sodass es da keine Probleme geben sollte. Ich hab's mal probiert, und das läuft ohne Zwischenfälle ab. Ausgabe (im Spoiler, weil etwas länger):
    Spoiler:(zum lesen bitte Text markieren)
    Code:
    apt-get install python3-pip
    Reading package lists... Done
    Building dependency tree... Done
    Reading state information... Done
    The following additional packages will be installed:
      javascript-common libjs-jquery libjs-sphinxdoc libjs-underscore libpython3-dev libpython3.10-dev python3-dev python3-setuptools
      python3-wheel python3.10-dev
    Suggested packages:
      apache2 | lighttpd | httpd python-setuptools-doc
    The following NEW packages will be installed:
      javascript-common libjs-jquery libjs-sphinxdoc libjs-underscore libpython3-dev libpython3.10-dev python3-dev python3-pip
      python3-setuptools python3-wheel python3.10-dev
    0 upgraded, 11 newly installed, 0 to remove and 0 not upgraded.
    Need to get 7,556 kB of archives.
    After this operation, 31.8 MB of additional disk space will be used.
    Do you want to continue? [Y/n] Y
    Get:1 http://archive.ubuntu.com/ubuntu jammy/main amd64 javascript-common all 11+nmu1 [5,936 B]
    Get:2 http://archive.ubuntu.com/ubuntu jammy/main amd64 libjs-jquery all 3.6.0+dfsg+~3.5.13-1 [321 kB]
    Get:3 http://archive.ubuntu.com/ubuntu jammy/main amd64 libjs-underscore all 1.13.2~dfsg-2 [118 kB]
    Get:4 http://archive.ubuntu.com/ubuntu jammy/main amd64 libjs-sphinxdoc all 4.3.2-1 [139 kB]
    Get:5 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libpython3.10-dev amd64 3.10.6-1~22.04.2 [4,755 kB]
    Get:6 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libpython3-dev amd64 3.10.6-1~22.04 [7,166 B]
    Get:7 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 python3.10-dev amd64 3.10.6-1~22.04.2 [507 kB]
    Get:8 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 python3-dev amd64 3.10.6-1~22.04 [26.0 kB]
    Get:9 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 python3-setuptools all 59.6.0-1.2ubuntu0.22.04.1 [339 kB]
    Get:10 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 python3-wheel all 0.37.1-2ubuntu0.22.04.1 [32.0 kB]
    Get:11 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 python3-pip all 22.0.2+dfsg-1ubuntu0.2 [1,305 kB]
    Fetched 7,556 kB in 4s (2,152 kB/s)     
    debconf: delaying package configuration, since apt-utils is not installed
    Selecting previously unselected package javascript-common.
    (Reading database ... 85595 files and directories currently installed.)
    Preparing to unpack .../00-javascript-common_11+nmu1_all.deb ...
    Unpacking javascript-common (11+nmu1) ...
    Selecting previously unselected package libjs-jquery.
    Preparing to unpack .../01-libjs-jquery_3.6.0+dfsg+~3.5.13-1_all.deb ...
    Unpacking libjs-jquery (3.6.0+dfsg+~3.5.13-1) ...
    Selecting previously unselected package libjs-underscore.
    Preparing to unpack .../02-libjs-underscore_1.13.2~dfsg-2_all.deb ...
    Unpacking libjs-underscore (1.13.2~dfsg-2) ...
    Selecting previously unselected package libjs-sphinxdoc.
    Preparing to unpack .../03-libjs-sphinxdoc_4.3.2-1_all.deb ...
    Unpacking libjs-sphinxdoc (4.3.2-1) ...
    Selecting previously unselected package libpython3.10-dev:amd64.
    Preparing to unpack .../04-libpython3.10-dev_3.10.6-1~22.04.2_amd64.deb ...
    Unpacking libpython3.10-dev:amd64 (3.10.6-1~22.04.2) ...
    Selecting previously unselected package libpython3-dev:amd64.
    Preparing to unpack .../05-libpython3-dev_3.10.6-1~22.04_amd64.deb ...
    Unpacking libpython3-dev:amd64 (3.10.6-1~22.04) ...
    Selecting previously unselected package python3.10-dev.
    Preparing to unpack .../06-python3.10-dev_3.10.6-1~22.04.2_amd64.deb ...
    Unpacking python3.10-dev (3.10.6-1~22.04.2) ...
    Selecting previously unselected package python3-dev.
    Preparing to unpack .../07-python3-dev_3.10.6-1~22.04_amd64.deb ...
    Unpacking python3-dev (3.10.6-1~22.04) ...
    Selecting previously unselected package python3-setuptools.
    Preparing to unpack .../08-python3-setuptools_59.6.0-1.2ubuntu0.22.04.1_all.deb ...
    Unpacking python3-setuptools (59.6.0-1.2ubuntu0.22.04.1) ...
    Selecting previously unselected package python3-wheel.
    Preparing to unpack .../09-python3-wheel_0.37.1-2ubuntu0.22.04.1_all.deb ...
    Unpacking python3-wheel (0.37.1-2ubuntu0.22.04.1) ...
    Selecting previously unselected package python3-pip.
    Preparing to unpack .../10-python3-pip_22.0.2+dfsg-1ubuntu0.2_all.deb ...
    Unpacking python3-pip (22.0.2+dfsg-1ubuntu0.2) ...
    Setting up javascript-common (11+nmu1) ...
    Setting up python3-setuptools (59.6.0-1.2ubuntu0.22.04.1) ...
    Setting up python3-wheel (0.37.1-2ubuntu0.22.04.1) ...
    Setting up libpython3.10-dev:amd64 (3.10.6-1~22.04.2) ...
    Setting up python3-pip (22.0.2+dfsg-1ubuntu0.2) ...
    Setting up python3.10-dev (3.10.6-1~22.04.2) ...
    Setting up libjs-jquery (3.6.0+dfsg+~3.5.13-1) ...
    Setting up libjs-underscore (1.13.2~dfsg-2) ...
    Setting up libpython3-dev:amd64 (3.10.6-1~22.04) ...
    Setting up libjs-sphinxdoc (4.3.2-1) ...
    Setting up python3-dev (3.10.6-1~22.04) ...
    Processing triggers for man-db (2.10.2-1) ...

    apt-get findet alle Pakete, um python3-pip zu installieren.

    So ähnlich sieht es bei mir auch aus. Ich glaube, er hat auch ein bisschen mehr geschafft als beim letzten Mal, aber am Ende kam wenigstens noch das hier an Fehlern:

    "E: Fehlschlag beim Holen von http://Security.ubuntu.com/(gaanz langer Link) /python3-pip22.0.2%2bdfsg-1ubuntu0.1_all.deb
    404 Not Found [IP: 123.xxx.xxx.xxx xx] <--hab ich jetzt ersetzt mit "x".
    E: Einige Archive konnten nicht heruntergeladen werden; vielleicht >>apt-get update<< ausführen oder mit >>--fix-missing<< probieren?
    "

    Das sagt er. Die Befehle am Ende habe ich nicht gemacht, weil ich nicht weiß, was er dann alles macht und ob sie vielleicht was anderes machen. Ich weiß ja nicht, wie gut diese "Tipps" sind, die das System vorschlägt.
    Gothicforum ist offline

  6. #6 Zitieren

    Batmanistrator
    Avatar von Thoronador
    Registriert seit
    Jul 2005
    Ort
    Morrowind, Vvardenfell-Distrikt
    Beiträge
    20.429
    Ja, in dem Fall ist apt-get update auch eine gute Empfehlung.
    In deiner Fehlermeldung steht noch die Version 22.0.2+dfsg-1ubuntu0.1, bei meiner Ausgabe weiter oben hingegen 22.0.2+dfsg-1ubuntu0.2. In deinem Fall versucht das System also noch, eine veraltete Version des Pakets herunterzuladen, die es möglicherweise auf dem Ubuntu-Server gar nicht mehr gibt. Einfach einmal apt-get update ausführen und danach nochmal die Installation mittels apt-get install python3-pip anstoßen.

    Zum Grundverständnis von apt-get und was die einzelnen Befehle bewirken, kannst du z. B. im (inoffiziellen) Ubuntu-Wiki nachsehen: https://wiki.ubuntuusers.de/apt/apt-get/
    Die wichtigsten Befehle sind im Prinzip folgende:
    • apt-get update - Lädt die neusten Paketlisten herunter und liest sie ein. Damit weiß das System, welche Versionen der verschiedenen Pakete zur Zeit auf den Servern von Mint / Ubuntu zum Download zur Verfügung stehen. Durch apt-get update wird noch kein Paket installiert oder aktualisiert, dafür sind andere Befehle zuständig.
    • apt-get upgrade - Aktualisiert die installierten Pakete auf neuere Versionen, sofern neuere Versionen vorhanden sind. Das ist natürlich nur dann wirklich sinnvoll, wenn man davor einmal apt-get update ausgeführt hat, um auch die aktuellsten Paketversionen herunterladen zu können. Eine gängige Methode, um auf Mint Softwareupdates durchzuführen, ist daher ein apt-get update gefolgt von apt-get upgrade. (Das sollte man übrigens auch regelmäßig machen. Im Prinzip kann man das wöchentlich oder sogar täglich machen, da erfahrungsgemäß die Updates unter Mint deutlich flotter ablaufen als man das beispielsweise von Windows-Updates kennt, die es etwa einmal im Monat gibt. Systemneustarts sind nach den Mint-Updates übrigens nur in seltenen Fällen notwendig (z. B. wenn der Kernel aktualisiert wird). Man kann daher in der Regel nach den Updates einfach weiterarbeiten.)
    • apt-get dist-upgrade - Das ist die "verschärfte" Version apt-get upgrade. "Verschärft" deshalb, weil mit apt-get dist-upgrade im Gegensatz zu apt-get update auch neue, zusätzliche Abhängigkeiten heruntergeladen werden, sofern diese für die Aktualisierung benötigt werden, oder eben auch alte Pakete entfernt werden können, sofern diese zu Konflikten bei einer Aktualisierung führen würden. Das ist zu empfehlen, falls beim Ausführen von apt-get upgrade bestimmte Aktualisierungen aufgrund der veränderten Abhängigkeiten zurückgehalten werden.
    • apt-get install PAKET - Installiert das Paket PAKET sowie die dafür benötigten Abhängigkeiten.
    • apt-get remove PAKET - Entfernt das zuvor installierte Paket PAKET wieder.
    Thoronador ist offline

  7. #7 Zitieren
    Veteran
    Registriert seit
    Jun 2012
    Beiträge
    640
    Du hattest ja mal diesen Befehl "-f" erwähnt, der dafür sorgt, dass ggf. vorhandene Abhängigkeiten auch gesucht werden sollen.

    Zitat Zitat von Thoronador Beitrag anzeigen
    Dann kann man das Paket mit folgenden zwei Befehlen im Terminal installieren:
    Code:
    sudo dpkg -i /home/user/Downloads/atom-amd64.deb
    sudo apt-get install -f
    Die erste Zeile führt die Installation durch. (Der Pfad zum heruntergeladenen Installationspaket ist ggf. anzupassen.) Da aber je nach zuvor installieren Paketen evtl. noch einige Abhängigkeiten fehlen und es deshalb zu Fehlern bei der Installation kommen könnte, wird die zweite Zeile nachgeschoben, um evtl. fehlende Abhängigkeiten ebenfalls zu installieren.

    Gibt es nicht vielleicht einen ebensolchen Befehl, der dafür sorgt, dass er ggf. guckt, ob es eine neuere Version gibt, die er dann installiert, wenn er die bisherige Versionsnummer nicht mehr findet? Also genau für diesen Fall mit der Version DateiV0.2 statt DateiV0.1 u.Ä.
    Gothicforum ist offline

  8. #8 Zitieren

    Batmanistrator
    Avatar von Thoronador
    Registriert seit
    Jul 2005
    Ort
    Morrowind, Vvardenfell-Distrikt
    Beiträge
    20.429
    Zitat Zitat von Gothicforum Beitrag anzeigen
    Du hattest ja mal diesen Befehl "-f" erwähnt, der dafür sorgt, dass ggf. vorhandene Abhängigkeiten auch gesucht werden sollen.
    Ja, aber das hilft halt nur, sofern die dem Rechner bekannten Versionen der Abhängigkeiten noch von den Mint- bzw. Ubuntu-Servern heruntergeladen werden können, weil sie dort noch vorhanden sind. Falls es inzwischen aber eine neuere Version der notwendigen Pakete gibt, muss das nicht mehr funktionieren. Womit wir zum zweiten Teil kommen:
    Zitat Zitat von Gothicforum Beitrag anzeigen
    Gibt es nicht vielleicht einen ebensolchen Befehl, der dafür sorgt, dass er ggf. guckt, ob es eine neuere Version gibt, die er dann installiert, wenn er die bisherige Versionsnummer nicht mehr findet? Also genau für diesen Fall mit der Version DateiV0.2 statt DateiV0.1 u.Ä.
    "Gucken, ob es eine neuere Version gibt" heißt halt einfach apt-get update. (Vielleicht ging das aus meiner obigen Erklärung nicht so ganz klar hervor.)
    Die neuere Version wird dann beim nächsten apt-get install PaketnameHierEinfügen installiert. Oder wenn das Paket schon installiert ist, dann wird mit apt-get upgrade die neuere Version installiert.
    Thoronador ist offline

  9. #9 Zitieren
    Veteran
    Registriert seit
    Jun 2012
    Beiträge
    640
    Zitat Zitat von Thoronador Beitrag anzeigen
    "Gucken, ob es eine neuere Version gibt" heißt halt einfach apt-get update. (Vielleicht ging das aus meiner obigen Erklärung nicht so ganz klar hervor.)
    Die neuere Version wird dann beim nächsten apt-get install PaketnameHierEinfügen installiert. Oder wenn das Paket schon installiert ist, dann wird mit apt-get upgrade die neuere Version installiert.
    Doch, doch. Das ging hervor und das hast du gut erklärt.
    Was ich jetzt frage ist mehr so "Haarspalterei".

    Aber man kann diesen Befehl mit dem "-f" ja quasi so übersetzen (wenn ich es jetzt mal deutsch formuliere, anstatt in Code) :

    "Installiere dieses Programm und falls irgendwelche Abhängigkeiten fehlen, dann installiere die auch noch, ohne dass ich das extra eingeben muss."

    Und so einen Befehl meinte ich ich nun, also sinngemäß:

    "Installiere pip mit all seinen Paketen. Sollte eines dieser Pakete nicht mehr zu finden sein, dann gucke, ob da eine neue Version ist und nimm die, ohne dass ich noch extra weitere Befehle eingeben muss."

    Also sinngemäß sowas:
    Code:
    sudo apt-get install python3-pip -np
    ("-np" für "neueste Pakete") oder irgendwie sowas, eben genau das Äquivalent zu einem einfachen "-f"
    Gothicforum ist offline Geändert von Gothicforum (15.03.2023 um 04:48 Uhr)

  10. #10 Zitieren
    Tieftöner Avatar von Lookbehind
    Registriert seit
    Dec 2007
    Beiträge
    15.176
    Ok, ich glaube wir müssen mal einen Schritt zurück treten und kurz erklären, wie die Paketverwaltung arbeitet. Gefühlt versucht Gothicforum hier ein Problem zu lösen, welches eigentlich keines ist, basierend auf einem falschen Verständnis von Zusammenhängen.

    Hinweis für die, die schon wissen wie das funktioniert: Es geht hier darum ein Konzept zu erklären. Daher werde ich einige Details weg lassen und/oder vereinfachen. Ebenso stütze ich das ganze extrem auf Debian basierte Distributionen (zu denen sowohl Ubuntu, als auch Linux Mint) gehören, weil das wohl hier verwendet wird.
    Ich bitte daher einige Ungenauigkeiten zu verzeihen.

    Die Aufgabe der Paketverwaltung ist es, Software (und anderes) auf dem System zu verwalten, zu installieren, zu aktualisieren, zu entfernen ... zu verwalten eben.

    Zu dem Zweck wird die Software in Pakete zerteilt, welche dann von der Paketverwaltung veraltet werden können. Das hat den Vorteil, dass mehrfach verwendete Elemente nur einmal verpackt und installiert werden müssen. Einfaches, unrealistisches, aber hoffentlich anschauliches Beispiel: Firefox und Thunderbird stammen beide von Mozilla und brauchen beide einen JavaScript-Interpreter. Wäre doch blöd, den zwei mal verpacken und installieren zu müssen. Also wird der JS-Interpreter in ein eigenes Paket gepackt, und sowohl das Paket für Firefox als auch Thunderbird haben eine Abhängigkeit auf das JS-Interpreter-Paket. Daher weiß die Paketverwaltung, wenn Firefox oder Thunderbird oder beide Pakete installiert sind, muss das JS-Interpreter-Paket auch mit installiert werden, und kümmert sich entsprechend automatisch darum. ohne dass der Nutzer über dieses Detail bescheid wissen muss.

    Damit die Paketverwaltung all diese Pakete installieren kann, braucht es eine Quelle für diese Pakete. Das ist das sogenannte Repository (oft werden gleich mehrere verwendet, aber das führt zu weit). So ein Repository ist im einfachsten Fall eine Webseite, auf der man all die Pakete herunter laden kann, mit einer bestimmten Struktur, damit die Paketverwaltung sich dort automagisch zurecht findet und alles findet, was sie sucht. Damit die Paketverwaltung aber weiß, welche Software, und in welcher Version, sie wo in dem Repository findet, muss sie eine Liste, einen Index über das Repository haben, mit allen dort verfügbaren Paketen und deren Meta-Informationen (Version, Dateiname, Abhängigkeiten, ...). Da sich der Inhalt des Repositorys mit der Zeit aber ändert (neue Versionen/Updates/...), muss diese Liste, dieser Index der Paketverwaltung ab und an auch mal aktualisiert werden. DAS macht "apt-get update"! Nicht mehr und nicht weniger. Das hat mich damals einiges gekostet um zu verstehen, dass "update" sich hier nur auf die Index-Liste bezieht, nicht auf die eigentlich installieren Pakete.
    Das ist aber ein verdammt wichtiger Schritt, weil die Paketverwaltung sonst gar nicht weiß, welche neueren Versionen der Pakete überhaupt verfügbar wären und welche alten Versionen vielleicht nicht mehr. Und dann passiert genau das, was Gothicforum hier passiert ist: Die Paketverwaltung soll das Paket "python3-pip" installieren, und weiß "die neuste verfügbare Version ist die 22.0.2+dfsg-1ubuntu0.1". Das weiß sie aus ihrem Index über das Repository. Also wird sie versuchen diese Version zu installieren. Bloß, der Index, den die Paketverwaltung hat, ist schon völlig veraltet, inzwischen ist "22.0.2+dfsg-1ubuntu0.2" aktuell und die andere Version schon gar nicht mehr verfügbar. Beim Versuch die alte Version zu installieren, knallt es dann, weil diese nicht gefunden werden kann. Das weiß die Paketverwaltung bloß vorher nicht, weil niemand ihren Index aktualisiert hat. Allerdings ahnt die Paketverwaltung, dass sowas passiert sein könnte, und schlägt darum vor den Index einmal mit "apt-get update" zu aktualisieren. Was auch grundsätzlich eine gute Idee ist. Dabei geht in der Regel nichts kaputt, ich rufe das mindestens 1x pro Tag auf.

    Ist die Paketliste (Index) aktuell, kann sich die Paketverwaltung auch um die nötigen Abhängigkeiten kümmern und diese automagisch verwalten. Weil sie dann eben auch weiß, was, wo in welcher Version verfügbar ist und was wovon abhängt. Da braucht man dann keinen fiktiven "-np" Parameter mehr, weil es automatisch die neusten sind.

    Der Parameter "-f" für "--fix-broken" (bzw. "--fix-missing", das sind eigentlich zwei verschiedene Parameter, aber ... Vereinfachung!) ist eigentlich vor allem für den Fall, dass bei der Installation und/oder Auflösung von Abhängigkeiten mal so richtig was schief gegangen ist. Die Parameter werden heut zu Tage zunehmend seltener gebraucht. Und wenn, dann meistens, weil der Admin ohnehin irgendwas wildes mit mehreren Repositories, Apt-Pinning und anderen komplexeren Regeln vorgegeben hat, was zur allgemeinen Verwirrung der Paketverwaltung beigetragen hat.
    Lookbehind ist offline

  11. #11 Zitieren
    Veteran
    Registriert seit
    Jun 2012
    Beiträge
    640
    Zitat Zitat von Lookbehind Beitrag anzeigen
    Da sich der Inhalt des Repositorys mit der Zeit aber ändert (neue Versionen/Updates/...), muss diese Liste, dieser Index der Paketverwaltung ab und an auch mal aktualisiert werden. DAS macht "apt-get update"! Nicht mehr und nicht weniger.

    Das hat mich damals einiges gekostet um zu verstehen, dass "update" sich hier nur auf die Index-Liste bezieht, nicht auf die eigentlich installieren Pakete.
    Das ist aber ein verdammt wichtiger Schritt, weil die Paketverwaltung sonst gar nicht weiß, welche neueren Versionen der Pakete überhaupt verfügbar wären und welche alten Versionen vielleicht nicht mehr.
    Achso. Gut erklärt. Danke sehr.

    Zitat Zitat von Lookbehind Beitrag anzeigen
    Damit die Paketverwaltung all diese Pakete installieren kann, braucht es eine Quelle für diese Pakete. Das ist das sogenannte Repository (oft werden gleich mehrere verwendet, aber das führt zu weit). So ein Repository ist im einfachsten Fall eine Webseite, auf der man all die Pakete herunter laden kann, mit einer bestimmten Struktur, damit die Paketverwaltung sich dort automagisch zurecht findet und alles findet, was sie sucht.

    Und dann passiert genau das, was Gothicforum hier passiert ist: Die Paketverwaltung soll das Paket "python3-pip" installieren, und weiß "die neuste verfügbare Version ist die 22.0.2+dfsg-1ubuntu0.1". Das weiß sie aus ihrem Index über das Repository. Also wird sie versuchen diese Version zu installieren. Bloß, der Index, den die Paketverwaltung hat, ist schon völlig veraltet, inzwischen ist "22.0.2+dfsg-1ubuntu0.2" aktuell und die andere Version schon gar nicht mehr verfügbar. Beim Versuch die alte Version zu installieren, knallt es dann, weil diese nicht gefunden werden kann.
    Und warum werden auf dieser Website/dem Repository nicht auch die vorigen Versionen (wie im Beispiel Version 22.0.2+dfsg-1ubuntu0.1) angeboten?
    Es kann doch sein, dass jemand die sucht, weil er die aus Gründen braucht und die neuen Fixes nicht haben will.
    Bei manch anderen Downloads (generell, nicht Linux) kann man doch auch auswählen, welche Version man downloaden möchte und kann die vorige Version auswählen.
    Gothicforum ist offline

  12. #12 Zitieren

    Batmanistrator
    Avatar von Thoronador
    Registriert seit
    Jul 2005
    Ort
    Morrowind, Vvardenfell-Distrikt
    Beiträge
    20.429
    Zitat Zitat von Gothicforum Beitrag anzeigen
    Und warum werden auf dieser Website/dem Repository nicht auch die vorigen Versionen (wie im Beispiel Version 22.0.2+dfsg-1ubuntu0.1) angeboten?
    Es kann doch sein, dass jemand die sucht, weil er die aus Gründen braucht und die neuen Fixes nicht haben will.
    Bei manch anderen Downloads (generell, nicht Linux) kann man doch auch auswählen, welche Version man downloaden möchte und kann die vorige Version auswählen.
    Die möglicherweise offensichtlichste Antwort auf diese Frage wäre, um Speicherplatz einzusparen. Allerdings bringen neue Versionen auch Bugfixes oder beheben wie im Beispiel von python-pip3 22.0.2+dfsg-1ubuntu0.2 Sicherheitsanfälligkeiten. Da wäre es dann schon etwas unvorteilhaft, wenn man die alte, anfällige Version behält, wenn schon eine neuere Version mit Fix für die Sicherheitslücke vorhanden ist. In manchen werden auch ältere Versionen auf dem Server behalten, aber man kann sich halt nicht darauf verlassen. Daher ist es eigentlich immer ratsam, vor fast jeder Aktion mit apt-get erst einmal ein apt-get update laufen zu lassen.
    Thoronador ist offline

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •