Sae*_*ati 4 command-line apt scripts
我.deb为 Ubuntu下载了 VS Code 的文件。我将其重命名为vs.deb.
然后我去我的下载目录:
cd ~/Downloads
Run Code Online (Sandbox Code Playgroud)
现在我在这里,我尝试安装它:
sudo apt install vs.deb
Run Code Online (Sandbox Code Playgroud)
这就是我得到的:
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package vs.deb
E: Couldn't find any package by glob 'vs.deb'
Run Code Online (Sandbox Code Playgroud)
但是当我使用 安装它时./vs.deb,它会被安装:
sudo apt install ./vs.deb
Run Code Online (Sandbox Code Playgroud)
为什么Linux不接受同目录内的文件名而不需要相对路径?
van*_*ium 18
您所经历的与 shell 无关,而是与apt命令如何解释命令行上的参数有关。
它主要用于从软件存储库安装软件包。默认情况下,参数 toapt表示软件源中包的名称。消息:
E: Unable to locate package vs.deb
Run Code Online (Sandbox Code Playgroud)
清楚地表明软件包vs.deb不存在于软件源中。
仍然apt允许您直接安装下载的.deb包文件并为其解析依赖项。您必须提供一个明确的文件路径以表明您要安装.deb文件。./vs.deb已经表示文件路径:./表示当前目录,所以apt会vs.deb在当前目录中找到文件。
实际上,“找到”文件的从来都不是 shell。shell 只是将参数传递给应用程序,由应用程序来解释这些参数。至多,shell 执行扩展(例如,替换*为所有文件名或~主文件夹的完整路径)或变量替换(例如$HOME,替换为该变量的内容)。
| 归档时间: |
|
| 查看次数: |
749 次 |
| 最近记录: |