![.deb 文件中有什么?](https://linux22.com/image/834473/.deb%20%E6%96%87%E4%BB%B6%E4%B8%AD%E6%9C%89%E4%BB%80%E4%B9%88%EF%BC%9F.png)
我下载了 Linux 版 google-chrome,它以 .deb 文件的形式下载到下载文件夹中。我将当前目录更改为下载文件夹并在终端中运行“google-chrome”。它启动了 google chrome,但问题是 .deb 文件不是脚本(据我所知)。那么终端如何理解“google-chrome”命令意味着启动它?emacs 等命令已经内置。那么这个新命令对 bash 来说怎么样?它是如何识别它的?
答案1
首先介绍一些基础知识:
当你在终端上运行命令时,你输入的是文件,(应该是可执行的):如果您输入一个简单的名称,例如emacs
,系统会在多个目录中搜索具有该名称的文件。此目录列表是您的PATH
(即,它存储在名为 PATH 的变量中)。您可以通过键入来查看其内容echo $PATH
。(顺便说一句,这些命令不是内置就像你在问题中说的那样......但是有些,例如ls
,没有任何可执行文件,而是由 shell 直接执行的)
或者,您可以输入更复杂的文件名,包括目录: /usr/bin/emacs
,甚至相对路径名!例如,如果您想运行myprog
位于用户目录中的文件中的程序,请输入./myprog
(.
意思是当前目录)
现在回到你的问题:
安装软件时,系统必须把所有东西都放到正确的位置,这样你以后就可以找到它了……这就是包管理器作用:它获取一个档案(.deb 文件),打开它,然后将文件放在正确的位置。
总之,您必须使用包管理器打开 .deb 文件。
cd ~/Downloads
dpkg -i google-chrome.deb
或者更好的是,通过软件中心安装它。
答案2
您的计算机上可能已经安装了 google-chrome。
deb 文件包含安装所需的所有文件陣容(以 root 身份):
dpkg -i <your-google-chrome-deb-file>.deb
软件包将二进制文件复制到你的二进制文件位置,然后命令谷歌浏览器将会在您的 shell 中可用。如果您没有执行此操作,也没有使用 apt-get 安装 Google Chrome,我猜这意味着您的系统中已经存在 Google Chrome。
如果你想查看 deb 文件包含什么,你可以使用:
dpkg --contents <file>.deb
答案3
如果我没记错的话,有铬和铬!它可能是你已安装的其中任何一个。