如何使用wget
通用命令(借助通配符)下载 Vivaldi 浏览器的最新 .deb?如果不输入最新版本的确切名称和编号,则无法下载 Vivaldi。例如,
wget https://downloads.vivaldi.com/stable/vivaldi-stable_3.5.2115.81-1_amd64.deb
firefox
我想要的是一些简单的东西,就像和的情况一样google-chrome
,其中
wget -nc -O ${HERE}/FirefoxSetup.tar.bz2 "https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US"
和
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
运行良好,无需指定确切的名称和版本号即可下载这些浏览器的最新版本,而不像 Vivaldi 的情况。我想要一个脚本,可以随时下载此浏览器(Vivaldi),而无需我干预来更新/更改它。
答案1
在基于 Debian 的系统上,可以使用 APT 工具,你可以下载 deb 软件包而无需安装它们,只需将其替换apt-get install
为apt-get download
N0rbert 的回答。但是,既然您仍然想使用wget
并避免使用 APT,那么您需要首先了解,Vivaldi 不会像 Firefox 和 Google Chrome 那样命名其最新版本。Firefox 和 Google Chrome 通常会指向latest
最新current
版本,而 Vivaldi 不会遵循。它只是在 deb 包名称中添加了版本号。
由于 Vivaldi 维护着一个名为套餐其中包含有关存储库中当前可用于特定体系结构的构建的信息(请参阅如何查看软件包存储库中的所有软件包?网站还是命令行?)。它通常有一个稳定版本和一个快照。目前,快照的信息放在最上面。稍后可能会确认信息放置是随机的还是固定的。
一个简单的 Bash 脚本如下所示:
#!/bin/bash
wget https://repo.vivaldi.com/archive/deb/dists/stable/main/binary-amd64/Packages
ver=$(tac Packages| grep -m1 Version | cut -d " " -f2)
wget https://repo.vivaldi.com/archive/deb/pool/main/vivaldi-stable_"$ver"_amd64.deb
rm Packages
一些解释:
首先下载套餐文件。提取最新版本字符串并存储在ver
变量中。由于稳定版本的信息存储在文件底部,tac
用于反转行。使用grep
提取“版本“。并-m
使用标志来限制结果。因为结果就像“版本:版本号“, 用过的cut
使用-f
标志获取第二个字段,即版本号。由于 debs 位于 /pool 中,因此使用wget
和的值ver
来获取最新的从那里开始构建。最后删除套餐文件。
如果你使用的是其他架构,你可以使用它来代替 amd64,例如 i386。我假设没有名为的文件套餐已经存在于当前工作目录中。您可能希望专门为此创建一个新文件夹,然后稍后从脚本本身中删除它。或者,您可以使用-O
from 选项wget
。
答案2
好的,让我分析一下JSON从Ubuntu MATE 软件精品店为你。
浏览器 | 存储库 | 安装命令 |
---|---|---|
维瓦尔第 | http://repo.vivaldi.com/archive/deb/ | wget https://repo.vivaldi.com/archive/deb/pool/main/vivaldi-stable_3.5.2115.81-1_amd64.deb && sudo apt-get update && sudo apt-get install -y ./vivaldi-stable_3.5.2115.81-1_amd64.deb |
歌剧 | https://deb.opera.com/opera-stable/ | wget https://deb.opera.com/opera-stable/pool/non-free/o/opera-stable/opera-stable_73.0.3856.284_amd64.deb && sudo apt-get update && sudo apt-get install -y ./opera-stable_73.0.3856.284_amd64.deb |
火狐 | https://packages.ubuntu.com/focal-updates/firefox | sudo apt-get update && sudo apt-get install firefox |
铬合金 | http://dl.google.com/linux/chrome/deb/ | wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb && sudo apt-get update && sudo apt-get install ./google-chrome-stable_current_amd64.deb |
但这种解决方案并不具有普遍性。
更通用的解决方案是向系统添加存储库,然后从中安装包:
维瓦尔第
cd /tmp wget http://repo.vivaldi.com/stable/linux_signing_key.pub sudo apt-key add linux_signing_key.pub sudo add-apt-repository "deb http://repo.vivaldi.com/archive/deb/ stable main" sudo apt-get update sudo apt-get install vivaldi-stable
歌剧
cd /tmp wget https://deb.opera.com/archive.key sudo apt-key add archive.key sudo add-apt-repository "deb https://deb.opera.com/opera-stable/ stable non-free" sudo apt-get update sudo apt-get install opera-stable
火狐
sudo apt-get update sudo apt-get install firefox
铬合金
cd /tmp wget http://dl.google.com/linux/linux_signing_key.pub sudo apt-key add linux_signing_key.pub sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 78BD65473CB3BD13 sudo add-apt-repository "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" sudo apt-get update sudo apt-get install google-chrome-stable
因此,所有这些软件包都会进行自动更新(通过无人值守升级)或手动更新sudo apt-get update && sudo apt-get upgrade
。