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.