Bash: Загрузите последнюю версию программы с веб-сайта через терминал

Таким образом, я чиню. Много. И это означает, что я склонен должным быть переустанавливать свою ОС, потому что я делаю что-то сумасшедшее и повреждаю его. Я не возражаю против этого, лужение является забавой. Но сделать мою жизнь легче, я работаю над сценарием удара для автовосстанавливания всего с единственной командой.

Вчера вечером я использовал его впервые (Четыре дня сумасшедшего материала и бум! Повредил все), и это был спаситель. Но существует несколько областей, что это могло использовать улучшение.

Основной, с которым я ищу справку прямо сейчас, получает приложения, которые не находятся в Кв. - получают инструмент. Я собираюсь использовать Медиасервер Plex в качестве примера. Я должен загрузить это непосредственно с веб-сайта.

Я не домой прямо сейчас, таким образом, у меня нет своего сценария передо мной, но я в настоящее время делаю, он этот путь (дразните URL в моем примере кода).

wget http://plex-website/downloads-page/plex-install-file-name-and-version.deb
dpkg plex-install-file-name-and-version.deb

Используя wget для загрузки файла и dpkg для установки его. Работы как очарование.

Это - хрупкий подход, тем не менее, потому что он зависит от определенного номера версии файла, который я загружаю. Со временем тот определенный номер версии изменится, таким образом, этот сценарий станет устаревшим.

Я ищу динамический способ записать это так, чтобы я мог загрузить файл с веб-сайта, не нуждаясь к hardcode в номере версии заранее. Идеально, что-то, что я могу использовать на нескольких сайтах, потому что Plex не является единственным, с которым я столкнусь с этой проблемой.

Заранее спасибо.

3
задан 10 March 2016 в 17:08

2 ответа

Я очистил бы страницу загрузки website’s для получения URL для желаемого пакета.

Пример: загрузите 32-разрядную версию Медиасервера Plex:

url=$(curl -s https://plex.tv/downloads | grep Ubuntu32 | cut -d\" -f2)
wget "$url"
dpkg -i "${url##*/}"

Для других пакетов, необходимо было бы исследовать источник HTML страницы, содержащей ссылки на загрузку. В вышеупомянутом примере я видел, что фраза Ubuntu32 только появилась однажды в источнике HTML. К счастью это находится в та же строка как URL для желаемого пакета: этот URL является первой строкой текста, включенного в двойные кавычки и эти cut, команда обеспечивает простой способ извлечь эту строку из остальной части строки.

Другие приложения могут иметь более сложные страницы загрузки, которые могут потребовать более сложных сценариев с помощью sed, awk или возможно более полнофункциональный язык, такой как Perl, Python или Ruby.

2
ответ дан 1 December 2019 в 15:55

Я не знаю, какой файл Вы получаете и от где, но обычно существует ярлык на последнее / стабильная версия, например, http://plex-website/downloads-page/plex-install-file-name-LATEST.deb Вы могли использовать это, и это также даст Вам то же имя файла для загруженного файла, который Вы могли использовать в команде dpkg.

, Кроме того, wget мог использоваться с подстановочными знаками, получающими все возможные версии, и с некоторым волшебством удара Вы могли изобразить самый высокий из них.

, например, wget -r -l1 -np "http://plex-website/downloads-page/" -A "plex-install-file-name-4.*.deb"

2
ответ дан 1 December 2019 в 15:55

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

Похожие вопросы: