安装ubuntu软件中心和命令行之间的区别
嗨,我是ubuntu世界的新手。 关于ubuntu中的软件安装我几乎没有问题:
-
在ubuntu软件中心和命令行中安装软件有什么区别?
-
为什么我在命令行中安装的某些软件无法在软件中心搜索(按窗口键)?
-
从命令行安装软件的正确命令是什么,以便我可以搜索它们?
-
我支持并恢复了我的系统一次,但之前的一些命令(如“subl”)在恢复系统后不起作用。
我认为这些问题在某种程度上与$ PATH有关,但我找不到一些关于此的材料。 任何额外的材料将不胜感激。 🙂
TL; DR :有很多灰色区域,这取决于你在做什么。 大多数情况下,软件中心和命令行方法在.deb
软件包方面做的事情类似,但其他软件包可能需要不同的步骤。
在Ubuntu软件中心和命令行安装软件有什么区别?
这就是现实:安装只不过是将软件包附带的文件放入适当的目录中。 如果通过命令行或通过软件中心完成它们并不重要 – 它们执行相同的操作 – 将文件抛出到各自的目录中。 然而,重要的是包装以及如何处理它。 在这里,我将介绍一些可以在Ubuntu上处理的基本软件包。 至于命令行和软件中心之间的区别,最基本的区别是在软件中心点击按钮; 在命令行中键入命令。 我知道Software Center使用了很多python代码,但在命令行中它取决于你使用的实用程序。 还有一些软件中心可以删除的数量(请阅读下面的内容)
Ubuntu的软件包有三种方式: .deb
文件, .run
文件,以及压缩zip
或tar
存档中的原始源代码。 根据您正在处理的是哪一个,命令行安装可能或多或少都很痛苦。 这不是新用户真正担心的事情,至少在使用Linux的第一年不是这样。
您将看到大多数.deb
文件 – 它们是预编译的软件包,可供使用。 这些都不那么痛苦了。 他们还经常指定依赖项 – 其他软件,如果没有它们,程序将无法运行。 命令行实用程序(如apt
和apt-get
将自动为您安装依赖项。 事实上,Software Center使用apt-get
作为后端,因此它也会自动安装依赖项。
.run
文件通常是专有的和编码的二进制文件。 你无法真正看到他们在做什么。
使用原始源代码,您必须自己完成所有事情 – 构建软件并安装依赖项。
还有一些方法可以从其他发行版安装软件包,例如.rpm
软件包,但这种做法非常少见。
还存在一类称为容器的软件。 有lxd
和lxd
容器。 截至最近,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%的工作。
- 在ubuntu软件中心和命令行中安装软件有什么区别?
软件的安装方式没有区别。 但是在15.10之前可以安装哪些软件会有所不同。 Trusty中的Ubuntu软件中心曾经允许用户通过它购买应用程序,而这些应用程序通常无法与apt-get
一起安装。
- 为什么我在命令行中安装的某些软件无法在软件中心搜索(按窗口键)?
我想你在这里指的是使用Dash的搜索(使用超级密钥)。 Dash通常只显示那些带有图形用户界面并具有某种图标的程序(更具体地说是.desktop文件)。 这些都适合日常使用,并在Dash搜索中显示。 但这些并非所有已安装的应用程序; Ubuntu有许多命令行应用程序,它们不会出现在Dash中,因为它们不适合用作图形独立应用程序(并且因为它们通常不附带.desktop文件)。 例如,您不会在Dash中看到tar
程序。
因此,如果您安装命令行应用程序,它通常不会出现在Dash(Windows键)搜索中。 因为,您没有指定哪个应用程序没有出现,这可能是一般答案。
注意:正如Serg在评论中指出的那样,Dash中图标的外观取决于.desktop文件。 如果命令行应用程序附带.desktop文件,它也会出现在破折号中。 我同意他的看法。 但确实,命令行应用程序通常没有.desktop文件。
- 从命令行安装软件的正确命令是什么,以便我可以搜索它们?
如前所述,没有命令从命令行安装软件会强制它出现在Dash搜索中。 有些软件会自动出现,有些则不会。 如果通过命令行安装atom-text-editor,它将出现。 如果您安装p7zip
包,它将不会出现在Dash搜索中。 这取决于软件的图形图标可用性(以及桌面环境中启动器图标的配置,如Unity,Xfce等)。 它不取决于您如何安装它们。
- 我支持并恢复了我的系统一次,但之前的一些命令(如“subl”)在恢复系统后不起作用。
这取决于您备份和还原的方式。 subl
是Sublime Text Editor的程序名称。 如果尚未安装,请安装它。 subl
命令应该开始工作。
我猜你从命令行使用apt
或apt-get
。 apt是GUI软件中心所依赖的包管理器。 比如说你想要安装包“gimp”。 要通过您使用的命令行执行此操作
sudo apt install gimp
当您选择要安装的GIMP时,所有软件中心都会在后台运行该命令,因此您无需键入它。
要通过命令行搜索可安装程序,请使用以下命令:
apt search {search term}