Как получить последний пакет .deb браузера Vivalvi?
Как загрузить последнюю версию .deb браузера Vivaldi с помощью
wget
общая команда (с помощью подстановочных знаков)? 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) в любое время без моего вмешательства, чтобы обновить/изменить его.
2 ответа
Хорошо, позвольте мне разобрать JSON из бутика Ubuntu MATE Software для вас.
Но это решение не универсально.
Более универсальным решением является добавление репозиториев в систему, а затем установка пакетов из них:
Вивальди
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
Fire Fox
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
.
В системах на основе Debian, где доступен инструмент APT, вы можете загружать пакеты deb без их установки, заменив
apt-get install
с
apt-get download
в ответе Норберта . Однако, поскольку вы все еще хотите использовать и избегать APT, вам нужно сначала понять, что Vivaldi не называет свой последний выпуск, как это делают Firefox и Google Chrome. Firefox и Google Chrome обычно делают
latest
/
current
указать на последний релиз, за которым Вивальди не следит. Он просто добавляет номер версии в имя пакета deb.
Поскольку Vivaldi поддерживает файл, известный как Packages , который содержит информацию о сборках, доступных в настоящее время в репозитории для конкретной архитектуры (см. Как просмотреть все пакеты в репозитории пакетов? Веб-сайт или командная строка? ). Обычно имеет стабильную сборку и снапшот. На данный момент информация о снимке размещена вверху. Позже можно будет подтвердить, является ли размещение информации случайным или фиксированным.
Простой 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
Некоторое объяснение: сначала скачал файл Packages . Извлекается строка последней версии и сохраняется в переменной. Поскольку информация о конюшне хранится в нижней части файла, tac
использовался для переворота строк. Использовал grep
чтобы извлечь " версию ". И ограничить результаты
-m
использовался флаг. Поскольку результат похож на " Version: VersionNumber ", используется cut
с
-f
флаг, чтобы получить второе поле, т . е. VersionNumber . Так как дебы находятся в /pool, используется и значение
ver
чтобы получить последнюю сборку оттуда. Наконец-то удален файл Packages .
Если вы используете другую архитектуру, вы можете использовать ее вместо amd64, например, i386. Я предположил, что в текущем рабочем каталоге не было файла с именем Packages . Возможно, вы захотите создать новую папку специально для этого и удалить ее позже из самого скрипта. В качестве альтернативы вы можете использовать
-O
вариант от
wget
.