安装ubuntu软件中心和命令行之间的区别

嗨,我是ubuntu世界的新手。 关于ubuntu中的软件安装我几乎没有问题:

  1. 在ubuntu软件中心和命令行中安装软件有什么区别?

  2. 为什么我在命令行中安装的某些软件无法在软件中心搜索(按窗口键)?

  3. 从命令行安装软件的正确命令是什么,以便我可以搜索它们?

  4. 我支持并恢复了我的系统一次,但之前的一些命令(如“subl”)在恢复系统后不起作用。

我认为这些问题在某种程度上与$ PATH有关,但我找不到一些关于此的材料。 任何额外的材料将不胜感激。 🙂

TL; DR :有很多灰色区域,这取决于你在做什么。 大多数情况下,软件中心和命令行方法在.deb软件包方面做的事情类似,但其他软件包可能需要不同的步骤。

在Ubuntu软件中心和命令行安装软件有什么区别?

这就是现实:安装只不过是将软件包附带的文件放入适当的目录中。 如果通过命令行或通过软件中心完成它们并不重要 – 它们执行相同的操作 – 将文件抛出到各自的目录中。 然而,重要的是包装以及如何处理它。 在这里,我将介绍一些可以在Ubuntu上处理的基本软件包。 至于命令行和软件中心之间的区别,最基本的区别是在软件中心点击按钮; 在命令行中键入命令。 我知道Software Center使用了很多python代码,但在命令行中它取决于你使用的实用程序。 还有一些软件中心可以删除的数量(请阅读下面的内容)

Ubuntu的软件包有三种方式: .deb文件, .run文件,以及压缩ziptar存档中的原始源代码。 根据您正在处理的是哪一个,命令行安装可能或多或少都很痛苦。 这不是新用户真正担心的事情,至少在使用Linux的第一年不是这样。

您将看到大多数.deb文件 – 它们是预编译的软件包,可供使用。 这些都不那么痛苦了。 他们还经常指定依赖项 – 其他软件,如果没有它们,程序将无法运行。 命令行实用程序(如aptapt-get将自动为您安装依赖项。 事实上,Software Center使用apt-get作为后端,因此它也会自动安装依赖项。

.run文件通常是专有的和编码的二进制文件。 你无法真正看到他们在做什么。

使用原始源代码,您必须自己完成所有事情 – 构建软件并安装依赖项。

还有一些方法可以从其他发行版安装软件包,例如.rpm软件包,但这种做法非常少见。

还存在一类称为容器的软件。 有lxdlxd容器。 截至最近,Ubuntu已经推出了一些称为snap包的东西。 这些都有什么好处? 它们可以在任何地方运行,与主系统安全隔离,并且可以非常快速地安装/重新安装。 这些类型的软件无法通过软件中心安装,通常可供专业系统管理员或技术/高级用户使用。 作为新用户,您不必担心这些,只要知道它们存在并且它们非常棒:)

最后,像脚本(通常是单个文件)之类的东西也可以被视为一个应用程序 – 安装只不过是将该文件放在它所属或应该属于的位置。

为什么我在命令行中安装的某些软件无法在软件中心搜索(按窗口键)?

同样,这实际上取决于包装。 如果软件的开发人员决定将.desktop文件包含在他们的软件包中,您就可以在Dash中搜索它。 .desktop文件有点像Windows快捷方式,尽管它们做得更多。 .desktop文件附带的命令行实用程序的一个很好的例子是Byobu – 一个非常方便的程序,用于将终端拆分为额外的选项卡/窗口。

但是,您可以为每个程序创建自己的.desktop文件,并将其放入~/.local/share/applications/文件夹中。

同样,这与app是命令行或GUI 无关 。 这取决于应用程序开发人员的选择

从命令行安装软件的正确命令是什么,以便我可以搜索它们?

同样,取决于你在做什么。 如果您从官方Ubuntu存储库安装软件,那么您只需执行sudo apt-get install my-software

如果要安装.deb软件包,可以使用dpkg命令或apt-get 。 这是我用apt-get安装google-chrome deb软件包的例子。 注意 :在安装时我与.deb文件位于同一目录中,因此必须指定./ part

 $ 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什么apt-get ? 它有--purge选项,允许您删除与程序相关的所有内容 。 例如,如果我只是使用sudo apt-get remove google-chrome-stable或通过软件中心sudo apt-get remove google-chrome-stable它,它可能会留下配置文件,这样当您重新安装软件时,它就像以前一样可以使用了。 --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命令行的function较少,使用率低于Linux。 简而言之,不要被你可能看到的所有东西吓倒,因为在日常的基础上,大约20%的最常用命令或动作,它们可以完成80%的工作。

  1. 在ubuntu软件中心和命令行中安装软件有什么区别?

软件的安装方式没有区别。 但是在15.10之前可以安装哪些软件会有所不同。 Trusty中的Ubuntu软件中心曾经允许用户通过它购买应用程序,而这些应用程序通常无法与apt-get一起安装。

  1. 为什么我在命令行中安装的某些软件无法在软件中心搜索(按窗口键)?

我想你在这里指的是使用Dash的搜索(使用超级密钥)。 Dash通常只显示那些带有图形用户界面并具有某种图标的程序(更具体地说是.desktop文件)。 这些都适合日常使用,并在Dash搜索中显示。 但这些并非所有已安装的应用程序; Ubuntu有许多命令行应用程序,它们不会出现在Dash中,因为它们不适合用作图形独立应用程序(并且因为它们通常不附带.desktop文件)。 例如,您不会在Dash中看到tar程序。

因此,如果您安装命令行应用程序,它通常不会出现在Dash(Windows键)搜索中。 因为,您没有指定哪个应用程序没有出现,这可能是一般答案。

注意:正如Serg在评论中指出的那样,Dash中图标的外观取决于.desktop文件。 如果命令行应用程序附带.desktop文件,它也会出现在破折号中。 我同意他的看法。 但确实,命令行应用程序通常没有.desktop文件。

  1. 从命令行安装软件的正确命令是什么,以便我可以搜索它们?

如前所述,没有命令从命令行安装软件会强制它出现在Dash搜索中。 有些软件会自动出现,有些则不会。 如果通过命令行安装atom-text-editor,它将出现。 如果您安装p7zip包,它将不会出现在Dash搜索中。 这取决于软件的图形图标可用性(以及桌面环境中启动器图标的配置,如Unity,Xfce等)。 它不取决于您如何安装它们。

  1. 我支持并恢复了我的系统一次,但之前的一些命令(如“subl”)在恢复系统后不起作用。

这取决于您备份和还原的方式。 subl是Sublime Text Editor的程序名称。 如果尚未安装,请安装它。 subl命令应该开始工作。

我猜你从命令行使用aptapt-get 。 apt是GUI软件中心所依赖的包管理器。 比如说你想要安装包“gimp”。 要通过您使用的命令行执行此操作

 sudo apt install gimp 

当您选择要安装的GIMP时,所有软件中心都会在后台运行该命令,因此您无需键入它。

要通过命令行搜索可安装程序,请使用以下命令:

 apt search {search term}