Как получить последний пакет .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.

Другие вопросы по тегам