Unterschied zwischen der Installation des Ubuntu Software Centers und der Befehlszeile [geschlossen]

8

Hallo, ich bin neu in der Ubuntu-Welt. Ich habe einige Fragen zur Softwareinstallation in Ubuntu:

  1. Was ist der Unterschied zwischen der Installation einer Software im Ubuntu Software Center und der Befehlszeile?

  2. Warum kann eine mit der Befehlszeile installierte Software nicht im Software Center gesucht werden (drücken Sie die Fenstertaste)?

  3. Was sind die richtigen Befehle, um eine Software über die Befehlszeile zu installieren, damit ich sie durchsuchen kann?

  4. Ich habe mein System einmal gesichert und wiederhergestellt, aber einige Befehle, die zuvor ausgeführt wurden (wie "subl"), funktionieren nach dem Wiederherstellen des Systems nicht.

Ich denke, diese Fragen beziehen sich irgendwie auf $ PATH, aber ich kann kein Material dazu finden. Jedes zusätzliche Material wäre willkommen. :) :)

Andy
quelle
1
Welche Software, die Sie über die Befehlszeile installiert haben, wird im Software Center nicht angezeigt? Welche Ubuntu-Version verwenden Sie?
Anwar
2
@ Andy # 2 und 4 brauchen bitte mehr Details. Vielen Dank!
Edgy1
1
Willkommen bei Ask Ubuntu! Es tut uns leid, aber Ask Ubuntu ist kein Forum, sondern eine Frage-Antwort-Site: Es funktioniert am besten, wenn Sie eine Frage stellen, damit Sie eine Antwort erhalten. Wenn Sie mehrere Fragen stellen, müssen Sie einen Experten finden, der sich in mehreren Bereichen auskennt. Dies wird umso unwahrscheinlicher, je mehr Fragen Sie in eine Frage stellen! ;-) Teilen Sie Ihre Frage also bitte in mehrere Fragen auf und schreiben Sie mir einen Kommentar, damit ich eine Ihrer Fragen beantworten kann.
David Foerster

Antworten:

9

TL; DR : Es gibt viele Grauzonen und es hängt davon ab, was Sie tun. Meistens machen Software Center- und Befehlszeilenmethoden ähnliche Dinge, wenn es um .debPakete geht, aber andere Softwarepakete erfordern möglicherweise andere Schritte.

Was ist der Unterschied zwischen der Installation einer Software im Ubuntu Software Center und der Befehlszeile?

Hier ist die Realität: Die Installation ist nichts anderes, als die mit dem Softwarepaket gelieferten Dateien in die entsprechenden Verzeichnisse zu werfen. Es spielt keine Rolle, ob dies über die Befehlszeile oder über das Software Center erfolgt - sie tun dasselbe - wirft die Dateien in ihre jeweiligen Verzeichnisse. Was jedoch zählt, ist das Paket und wie Sie damit umgehen. Hier gehe ich einige der Basispakete durch, mit denen Sie unter Ubuntu umgehen können. Der grundlegendste Unterschied zwischen Befehlszeile und Software Center besteht darin, dass Sie im Software Center auf Schaltflächen klicken. In der Befehlszeile geben Sie Befehle ein. Ich weiß, dass Software Center viel Python-Code verwendet, aber in der Befehlszeile hängt dies vom verwendeten Dienstprogramm ab. Es gibt auch eine Menge davon, wie viel Software Center entfernen kann (lesen Sie weiter unten darüber).

Die Softwarepakete für Ubuntu können auf drei Arten angeboten werden: .debDatei, .runDatei und nur roher Quellcode in komprimiertem zipoder tararchiviertem Format . Je nachdem, mit welchem ​​Sie es zu tun haben, kann die Installation der Befehlszeile mehr oder weniger schmerzhaft sein. Dies ist nichts, worüber Sie sich als neuer Benutzer wirklich Sorgen machen sollten, zumindest nicht im ersten Jahr der Verwendung von Linux.

Sie werden hauptsächlich .debDateien sehen - es handelt sich um vorkompilierte Softwarepakete, die zur Verwendung bereit sind. Diese sind weniger schmerzhaft. Sie geben auch sehr oft Abhängigkeiten an - andere Software, ohne die Ihr Programm nicht ausgeführt werden kann. Befehlszeilenprogramme wie aptund apt-getinstallieren Abhängigkeiten automatisch für Sie. Tatsächlich wird Software Center apt-getals Back-End verwendet, sodass Abhängigkeiten auch automatisch installiert werden.

.runDateien sind normalerweise proprietäre und codierte Binärdateien. Sie können nicht wirklich sehen, was sie tun.

Mit rohem Quellcode müssen Sie alles selbst erledigen - Software erstellen und Abhängigkeiten installieren.

Es gibt auch Möglichkeiten, Pakete aus anderen Distributionen wie .rpmPaketen zu installieren , dies geschieht jedoch sehr, sehr selten.

Es gibt auch eine Klasse von Software, die als Container bekannt ist. Es gibt Docker und lxdContainer. Seit kurzem hat Ubuntu sogenannte snapPakete eingeführt. Was ist gut an all diesen? Sie können überall ausgeführt werden, sind sicher von Ihrem Hauptsystem isoliert und können recht schnell installiert / neu installiert werden. Diese Softwaretypen können nicht über das Software Center und im Allgemeinen für professionelle Systemadministratoren oder technische / fortgeschrittene Benutzer installiert werden. Als neuer Benutzer müssen Sie sich keine Sorgen machen, seien Sie sich nur bewusst, dass sie existieren und sie sind fantastisch :)

Schließlich kann so etwas wie ein Skript (und normalerweise eine einzelne Datei) auch als Anwendung betrachtet werden. Die Installation ist nichts anderes, als diese Datei dahin zu werfen, wo sie hingehört oder hingehört.

Warum kann eine mit der Befehlszeile installierte Software nicht im Software Center gesucht werden (drücken Sie die Fenstertaste)?

Auch dies hängt wirklich vom Paket ab. Wenn die Entwickler der Software beschlossen haben, .desktopDateien in ihr Paket aufzunehmen, können Sie diese im Dash durchsuchen. .desktopDateien ähneln Windows-Verknüpfungen, obwohl sie viel mehr können. Ein gutes Beispiel für das mit der .desktopDatei gelieferte Befehlszeilenprogramm ist Byobu - ein sehr praktisches Programm zum Aufteilen des Terminals in zusätzliche Registerkarten / Fenster.

Sie können jedoch .desktopfür jedes Programm eine eigene Datei erstellen und in einem ~/.local/share/applications/Ordner ablegen.

Auch dies hat nichts damit zu tun, dass die App eine Befehlszeile oder eine GUI ist. Dies hängt von den Entscheidungen ab, die App-Entwickler treffen

Was sind die richtigen Befehle, um eine Software über die Befehlszeile zu installieren, damit ich sie durchsuchen kann?

Kommt wieder darauf an, was du tust. Wenn Sie Software aus offiziellen Ubuntu-Repositories installieren, können Sie dies einfach tunsudo apt-get install my-software

Wenn Sie ein .debPaket installieren , können Sie entweder den dpkgBefehl oder verwenden apt-get. Hier ist ein Beispiel für die Installation des Google-Chrome-Deb-Pakets mit apt-get. HINWEIS : .debZum Zeitpunkt der Installation bin ich im selben Verzeichnis wie die Datei, daher muss ein ./Teil angegeben werden

$ sudo apt-get install ./google-chrome-stable_current_amd64.deb                
[sudo] password for xieerqi: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Note, selecting 'google-chrome-stable' instead of './google-chrome-stable_current_amd64.deb'
The following NEW packages will be installed:
  google-chrome-stable
0 upgraded, 1 newly installed, 0 to remove and 54 not upgraded.
Need to get 0 B/50.0 MB of archives.
After this operation, 190 MB of additional disk space will be used.
Get:1 /home/xieerqi/下载/google-chrome-stable_current_amd64.deb google-chrome-stable amd64 53.0.2785.101-1 [50.0 MB]
Selecting previously unselected package google-chrome-stable.
(Reading database ... 476104 files and directories currently installed.)
Preparing to unpack .../google-chrome-stable_current_amd64.deb ...
Unpacking google-chrome-stable (53.0.2785.101-1) ...
Processing triggers for menu (2.1.47ubuntu1) ...
Processing triggers for bamfdaemon (0.5.3~bzr0+16.04.20160701-0ubuntu1) ...
Rebuilding /usr/share/applications/bamf-2.index...
Processing triggers for gnome-menus (3.13.3-6ubuntu3.1) ...
Processing triggers for desktop-file-utils (0.22-1ubuntu5) ...
Processing triggers for mime-support (3.59ubuntu1) ...
Processing triggers for man-db (2.7.5-1) ...
Setting up google-chrome-stable (53.0.2785.101-1) ...
update-alternatives: using /usr/bin/google-chrome-stable to provide /usr/bin/x-www-browser (x-www-browser) in auto mode
update-alternatives: using /usr/bin/google-chrome-stable to provide /usr/bin/gnome-www-browser (gnome-www-browser) in auto mode
update-alternatives: using /usr/bin/google-chrome-stable to provide /usr/bin/google-chrome (google-chrome) in auto mode
Processing triggers for menu (2.1.47ubuntu1) .

Was ist schön daran apt-get? Es gibt eine --purgeOption, mit der Sie alles entfernen können, was mit einem Programm zu tun hat. Wenn ich es beispielsweise nur mit sudo apt-get remove google-chrome-stableoder über Software Center entferne , bleiben möglicherweise Konfigurationsdateien zurück, sodass die Software bei der Neuinstallation wie zuvor einsatzbereit ist. --purgeMit dieser Option werden auch die Konfigurationsdateien gelöscht. Dies ist praktisch, wenn Ihre Software defekt ist und Sie eine völlig neue Installation wünschen. Das Software Center macht das nicht, das ist also ein weiterer Unterschied.

Wenn Sie mit .runDateien arbeiten, müssen Sie diese Datei ausführbar machen und ausführen. So was:

$ sudo chmod +x ./software.run
$ sudo ./software.run

Ich habe mein System einmal gesichert und wiederhergestellt, aber einige Befehle, die zuvor ausgeführt wurden (wie "subl"), funktionieren nach dem Wiederherstellen des Systems nicht.

Dies hängt von der Art der Sicherung ab, die Sie durchgeführt haben. Wenn Ihr Backup alle Dateien enthielt, die sublfür die Arbeit erforderlich sind , sollte es funktioniert haben. Es kann auch sein, dass Ihr Backup vor sublder Installation durchgeführt wurde. Stellen Sie sicher, dass Sie Ihr Backup richtig konfiguriert haben

Ich denke, diese Fragen beziehen sich irgendwie auf $ PATH, aber ich kann kein Material dazu finden. Jedes zusätzliche Material wäre willkommen.

Die $PATHVariable ist für die Shell relevant (der Befehlsinterpreter, in den Sie Befehle einfügen). Es ist für Unity Dash nicht wirklich relevant. $PATHVariable ist wirklich eine Liste von Verzeichnissen, in denen die Shell nach Programmen sucht, für die ausführbare Berechtigungen festgelegt wurden. Dash befasst sich wirklich .desktopnur mit Dateien. Zum Beispiel kann ich ein Programm im /usr/binOrdner haben und es über die Befehlszeile öffnen, Dash jedoch nicht, da es keine entsprechende .desktopDatei dafür gibt.

Wenn Sie zusätzliches Material finden möchten, lesen Sie $PATHbuchstäblich jedes Buch über Linux-Shell-Scripting. Es ist eines der grundlegenden Wissenselemente für jeden Linux-Benutzer, der die Befehlszeile verwenden möchte.

Einige abschließende Gedanken : Die Komplexität der Softwareinstallation für Linux kann für neue Benutzer aus der Windows- oder Mac-Welt manchmal schockierend sein. In Wirklichkeit sind es die gleichen Prinzipien - werfen Sie alles dorthin, wo es hingehört, und es wird funktionieren. Sie finden keine Verknüpfung zu Ihrem Programm? Machen Sie eine - es ist nur eine Textdatei! Computer sind Maschinen und sollen bedient werden. Windows hat auch eine %PATH%Variable für die Befehlszeile, Sie haben es einfach nie gewusst, da die Windows-Befehlszeile weniger vielseitig ist und weniger verwendet wird als unter Linux. Kurz gesagt, lassen Sie sich nicht von allem einschüchtern, was Sie vielleicht sehen, denn täglich sind es etwa 20% der am häufigsten verwendeten Befehle oder Aktionen, und Sie erhalten 80% der geleisteten Arbeit.

Sergiy Kolodyazhnyy
quelle
1
Wie in der Tat, viele Pakete sind mehr als einige Dateien in einige Verzeichnisse setzen. Installationsaspekte, die darüber hinausgehen, sind Abhängigkeiten, Neuerstellung von Caches und anderen Triggern, Dienstkonfiguration, Starten von Diensten.
Hat aufgehört - Anony-Mousse
The complexity of software installation for Linux may sometimes be shocking to new users who come from Windows or Mac worldhängt auch davon ab, wie sie diese verwendet haben. Ich habe viele Anwendungen "installiert", indem ich sie in Windows entpackt habe, und ich habe gesehen, dass viele Installer buchstäblich nur irgendwo in entpackt haben Program Files. Unter Linux ist die Installation größtenteils so einfach wie beispielsweise unter Windows. Nur anstatt eine .exeDatei herunterzuladen und auszuführen, tun Sie dies mit a .deb. Oder Wasauchimmer. Und die Befehlszeilenausführung erledigt diesen Prozess nur für Sie. Das Software Center ist eine grafische Benutzeroberfläche.
VLAZ
5
  1. Was ist der Unterschied zwischen der Installation einer Software im Ubuntu Software Center und der Befehlszeile?

Es gibt keinen Unterschied in wie Software installiert ist. Früher gab es jedoch einen Unterschied, welche Software vor 15.10 installiert werden konnte. Das Ubuntu Software Center in Trusty ermöglichte es Benutzern, Anwendungen über das Ubuntu zu kaufen, und diese Anwendungen können normalerweise nicht mit installiert werden apt-get.

  1. Warum kann eine mit der Befehlszeile installierte Software nicht im Software Center gesucht werden (drücken Sie die Fenstertaste)?

Ich denke, Sie beziehen sich hier auf die Suche mit Dash (mit dem Superschlüssel). Dash zeigt im Allgemeinen nur die Programme an, die über eine grafische Benutzeroberfläche verfügen und über ein Symbol verfügen (insbesondere über eine .desktop- Datei). Diese sind gut für den täglichen Gebrauch und werden in der Dash-Suche angezeigt. Dies sind jedoch nicht alle von Ihnen installierten Anwendungen. Ubuntu verfügt über viele Befehlszeilenanwendungen, die nicht in Dash angezeigt werden, da diese nicht für die Verwendung als eigenständige grafische Anwendungen geeignet sind (und normalerweise nicht mit einer .desktop-Datei geliefert werden). Beispielsweise wird das tarProgramm in Dash nicht angezeigt.

Wenn Sie also eine Befehlszeilenanwendung installieren, wird diese im Allgemeinen nicht in der Dash-Suche (Windows-Taste) angezeigt. Da Sie nicht angegeben haben, welche Anwendung nicht angezeigt wird, könnte dies die allgemeine Antwort sein.

Hinweis: Wie Serg in einem Kommentar betonte, hängt das Erscheinungsbild von Symbolen in Dash von .desktop-Dateien ab. Wenn eine Befehlszeilenanwendung mit einer .desktop-Datei geliefert wird, wird diese auch im Bindestrich angezeigt. Ich stimme ihm zu. Es ist jedoch richtig, dass Befehlszeilenanwendungen normalerweise keine .desktop- Datei enthalten.

  1. Was sind die richtigen Befehle, um Software über die Befehlszeile zu installieren, damit ich sie durchsuchen kann?

Wie bereits erwähnt, gibt es keinen Befehl zum Installieren einer Software über die Befehlszeile, der das Erscheinen in der Dash-Suche erzwingt. Einige Software wird automatisch angezeigt, andere nicht. Wenn Sie den Atom-Text-Editor über die Befehlszeile installieren, wird er angezeigt. Wenn Sie das p7zipPaket installieren , wird es nicht in der Dash-Suche angezeigt. Dies hängt von der Verfügbarkeit der grafischen Symbole der Software ab (und von der Konfiguration der Startsymbole in Ihrer Desktop-Umgebung, z. B. Unity, Xfce usw.). Es hängt nicht davon ab, wie Sie sie installieren.

  1. Ich habe mein System einmal gesichert und wiederhergestellt, aber einige Befehle, die zuvor ausgeführt wurden (wie "subl"), funktionieren nach dem Wiederherstellen des Systems nicht.

Dies hängt davon ab, wie Sie gesichert und wiederhergestellt haben. sublist der Programmname für Sublime Text Editor. Wenn Sie es noch nicht installiert haben, installieren Sie es. Der sublBefehl sollte funktionieren.

Anwar
quelle
1
Die Antwort auf Punkt 2 ist nicht ganz richtig. Dash sucht nach .desktop-Dateien. Ein gutes Beispiel für ein Befehlszeilenprogramm, das mit der .desktop-Datei geliefert wird, ist byobu und kann per Bindestrich durchsucht werden. Symbole sind irrelevant
Sergiy Kolodyazhnyy
@ Serg Danke. Ich wollte so viel wie möglich eine nicht-technische Antwort geben. Wie auch immer, ich werde bearbeiten
Anwar
@Serg Es scheint, dass Byobu auch mit einem Symbol kommt :)
Anwar
Selbst wenn es ohne Symbol wäre, wäre es in Dash immer noch durchsuchbar. Aufgrund der .desktopDatei hätte es dann nur ein Symbol mit Fragezeichen, aber es würde immer noch funktionieren. Das Symbol ist wirklich optional. Es liegt an den Entwicklern, Symbole einzuschließen oder nicht.
Sergiy Kolodyazhnyy
3

Ich vermute, dass Sie entweder aptoder apt-getüber die Befehlszeile verwenden. apt ist ein Paketmanager, auf den sich das GUI-Softwarecenter verlässt. Angenommen, Sie möchten das Paket "gimp" installieren. Dazu verwenden Sie die von Ihnen verwendete Befehlszeile

sudo apt install gimp

Alles, was Software Center tut, ist, wenn Sie GIMP für die Installation auswählen, diesen Befehl im Hintergrund auszuführen, damit Sie ihn nicht eingeben müssen.

Verwenden Sie diesen Befehl, um über die Befehlszeile nach einem installierbaren Programm zu suchen:

apt search {search term}
Edgy1
quelle