嗨,我是ubuntu世界的新手。我对ubuntu中的软件安装有几个疑问:
在ubuntu软件中心和命令行中安装软件有什么区别?
为什么我在命令行中安装了某些通过命令行安装的软件(按窗口键)?
从命令行安装软件以便我可以搜索它们的正确命令是什么?
我曾经备份并恢复了系统一次,但是恢复系统后某些命令(例如“ subl”)之前无法工作。
我认为这些问题都是关于$ PATH的,但是我找不到有关此的材料。任何额外的材料将不胜感激。:)
嗨,我是ubuntu世界的新手。我对ubuntu中的软件安装有几个疑问:
在ubuntu软件中心和命令行中安装软件有什么区别?
为什么我在命令行中安装了某些通过命令行安装的软件(按窗口键)?
从命令行安装软件以便我可以搜索它们的正确命令是什么?
我曾经备份并恢复了系统一次,但是恢复系统后某些命令(例如“ subl”)之前无法工作。
我认为这些问题都是关于$ PATH的,但是我找不到有关此的材料。任何额外的材料将不胜感激。:)
Answers:
TL; DR:有很多灰色区域,这取决于您在做什么。通常,对于.deb
软件包,软件中心和命令行方法会执行类似的操作,但是其他软件包可能需要不同的步骤。
在Ubuntu软件中心和命令行中安装软件有什么区别?
这就是现实:安装无非就是将软件包随附的文件扔到适当的目录中。不管是通过命令行还是通过软件中心完成-它们都执行相同的操作-将文件放入各自的目录中。但是,重要的是包装及其处理方式。在这里,我将介绍一些可以在Ubuntu上处理的基本软件包。至于命令行和软件中心之间的区别,最基本的区别是在软件中心中您单击按钮。在命令行中键入命令。我知道软件中心使用了大量的python代码,但是在命令行中它取决于您使用的实用程序。还有多少软件中心可以删除(有关此内容,请参阅下文)
Ubuntu的软件包可以以三种方式提供:.deb
文件,.run
文件,以及压缩zip
或tar
存档形式的原始源代码。根据您要处理的内容,命令行安装可能会或多或少地带来痛苦。作为新用户,这不是您真正要担心的事情,至少在使用Linux的第一年就不用担心。
您将主要看到.deb
文件-它们是预编译的软件包,可供使用。这些都减轻了痛苦。它们还经常指定依赖项-如果没有其他依赖项,程序将无法运行。命令行实用程序(例如apt
和)apt-get
将为您自动安装依赖项。实际上,Software Center apt-get
用作后端,因此它也会自动安装依赖项。
.run
文件通常是专有的和编码的二进制文件。您真的看不到他们在做什么。
使用原始源代码,您必须自己做所有事情-构建软件和安装依赖项。
还有其他方法可以安装其他发行版中的.rpm
软件包,例如软件包,但是很少这样做。
还存在一类称为容器的软件。有码头工人和lxd
容器。最近,Ubuntu引入了一种称为snap
软件包的东西。所有这些有什么好处?它们可以在任何地方运行,与您的主系统安全隔离,并且可以非常快速地安装/重新安装。这些类型的软件无法通过软件中心安装,通常是为专业的系统管理员或技术人员/高级用户安装的。作为新用户,您不必担心这些,只需要知道它们存在并且它们非常棒:)
最后,像脚本(通常是单个文件)之类的东西也可以被认为是一个应用程序,再次说明-安装无非就是将该文件丢到它所属的位置或应该属于的位置。
为什么我在命令行中安装了某些安装了命令行的软件(按窗口键)?
同样,这实际上取决于包装。如果软件开发人员决定在.desktop
文件包中包含文件,则可以在Dash中搜索文件。.desktop
文件有点像Windows快捷方式,尽管它们做得更多。.desktop
文件随附的命令行实用程序的一个很好的例子是Byobu-一个非常方便的程序,用于将终端拆分为额外的选项卡/窗口。
但是,您可以.desktop
为每个程序创建自己的文件并将其放入~/.local/share/applications/
文件夹中。
同样,这与应用程序是命令行或GUI 无关。这取决于应用程序开发人员做出的选择
从命令行安装软件以便我可以搜索它们的正确命令是什么?
再次,取决于您在做什么。如果您要从Ubuntu官方存储库安装软件,则只需sudo apt-get install my-software
如果要安装.deb
软件包,则可以使用dpkg
command或apt-get
。这是我使用apt-get安装google-chrome deb软件包的示例。 注意:在安装时,我与.deb
文件位于同一目录中,因此必须指定./
部分
$ 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) .
有什么好处apt-get
?它具有--purge
选项,可让您删除与程序有关的所有内容。例如,如果我只是sudo apt-get remove google-chrome-stable
使用Software Center 删除它或通过Software Center做它,它可能会留下配置文件,因此当您重新安装该软件时,它就可以像以前一样使用了。--purge
选项也将删除配置文件。如果您的软件损坏了,并且您希望完全全新安装,那将非常方便。软件中心不这样做,所以这是另一个区别。
如果要处理.run
文件,则需要使该文件可执行并运行。像这样:
$ sudo chmod +x ./software.run
$ sudo ./software.run
我曾经备份并恢复了系统一次,但是恢复系统后某些命令(例如“ subl”)之前无法工作。
这取决于您执行的备份类型。如果您的备份包含了subl
正常工作所需的所有文件,则该备份应该已经生效。也可能是您的备份发生在subl
安装之前。确保正确配置了备份
我认为这些问题都是关于$ PATH的,但是我找不到有关此的材料。任何额外的材料将不胜感激。
该$PATH
变量与shell(放置命令的命令解释器)有关。它与Unity Dash无关。$PATH
变量实际上是目录列表,shell将在其中搜索已设置可执行权限的程序。Dash实际上.desktop
只关心文件。例如,我可以将一个程序放在/usr/bin
文件夹中,并能够通过命令行打开它,但Dash不会,因为没有对应的.desktop
文件。
如果您想找到有关的更多材料$PATH
,请直接阅读有关Linux shell脚本的任何书籍。对于任何想使用命令行的Linux用户而言,它都是基础知识项目之一。
一些结束语:Linux的软件安装的复杂性有时可能会震惊来自Windows或Mac世界的新用户。实际上,这是相同的原则-将所有内容都扔到其所属的位置,它将起作用。您找不到程序的快捷方式吗?做一个-这只是一个文本文件!计算机是机器,它们是要被操作的。Windows %PATH%
的命令行也有变量,您从来都不知道,因为Windows命令行比Linux少通用性和使用性。简而言之,不要被您可能看到的一切吓倒,因为在日常工作中,这大约是最常用的命令或操作的20%,它们可以为您完成80%的工作。
The complexity of software installation for Linux may sometimes be shocking to new users who come from Windows or Mac world
也取决于他们如何使用它们。我已经通过在Windows中解压缩来“安装”了大量的应用程序,并且我看到许多安装程序实际上只是在中的某个位置进行解压缩Program Files
。在Linux中,大多数安装就像在Windows上一样容易。仅使用下载而不是下载和运行.exe
文件.deb
。管他呢。命令行执行只是为您完成该过程。软件中心位于顶部。
- 在ubuntu软件中心和命令行中安装软件有什么区别?
有一个在没有区别如何安装软件。但是,曾经有一些差异,其中的软件可以15.10之前安装。Trusty中的Ubuntu Software Center曾经允许用户通过它购买应用程序,而这些应用程序通常无法与一起安装apt-get
。
- 为什么我在命令行中安装了某些安装了命令行的软件(按窗口键)?
我认为您在这里指的是使用Dash的搜索(使用超级键)。Dash通常仅显示那些带有图形用户界面并带有某种图标(更具体而言是.desktop文件)的程序。这些非常适合日常使用,可以在Dash搜索中显示。但是,这些并不是您已安装的所有应用程序;它们并不是所有的应用程序。Ubuntu有许多Dash中没有出现的命令行应用程序,因为它们不适合用作图形独立应用程序(并且因为它们通常不随.desktop文件提供)。例如,您不会tar
在Dash中看到该程序。
因此,如果安装命令行应用程序,则该应用程序通常不会出现在Dash(Windows键)搜索中。由于您尚未指定未出现哪个应用程序,因此这可能是一般的答案。
注意:正如Serg在评论中指出的那样,Dash中图标的外观取决于.desktop文件。如果命令行应用程序带有.desktop文件,则该文件也将显示为破折号。我同意他的观点。但是,的确,命令行应用程序通常不带有.desktop文件。
- 从命令行安装软件以便我可以搜索它们的正确命令是什么?
就像已经说过的那样,没有命令可以从命令行安装软件来强制其出现在Dash搜索中。有些软件会自动出现,有些则不会。如果通过命令行安装atom-text-editor,它将出现。如果您安装p7zip
软件包,它将不会出现在Dash搜索中。这取决于软件的图形图标可用性(以及桌面环境中启动器图标的配置,例如Unity,Xfce等)。它不取决于您如何安装它们。
- 我曾经备份并恢复了系统一次,但是恢复系统后某些命令(例如“ subl”)之前无法工作。
这取决于您如何备份和还原。subl
是Sublime Text Editor的程序名称。如果尚未安装,请安装。该subl
命令应开始工作。
.desktop
有了该文件,它只会带有带问号的图标,但仍然可以使用。图标确实是可选的。由开发人员决定是否包含图标。