Created
July 22, 2016 17:58
-
-
Save ifokeev/9ff64123e6d79d86211867597d956403 to your computer and use it in GitHub Desktop.
updating ubuntu repos and gpg
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Эта пара строк не претендует на что-либо, но давно хотел это написать, а тут как раз и повод подвалил. :) | |
# Короче, это маленький скриптик для убунтоводов, автоматический запрашивающий GPG-ключи с keyserver.ubuntu.com для всех неподпписанных репозиториев. Будет полезен после добавления каждого нового PPA, чтобы не заниматься каждый раз копипастой фингерпринта и ручным вводом команды apt-key со всеми параметрами. Кроме того, наверное, будет полезен после переноса старого sources.list в свежеустановленную систему, когда внезапно оказывается, что репозитории-то перенесены, а ключи — нет. | |
# Запускать вместо apt-get update. | |
# Специально для http://welinux.ru/post/5160/ | |
# Делаем разделитель строк, а не слов | |
OLDIFS=$IFS | |
IFS=$'\n' | |
# Получаем строки с ошибками, где не найдены ключи репозиториев | |
lines=`sudo apt-get update 2>&1 | grep "NO_PUBKEY"` | |
# Проходимся по каждой строчке | |
for line in $lines | |
do | |
# Вынимаем отпечаток, записанное в конце строки (16-значный код, ну и плюс там конец строки) | |
key=`echo $line | tail --bytes=17` | |
# Собственно, получаем ключ по отпечатку | |
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $key | |
# Запоминаем, что какой-то ключ был получен | |
SOMETHINGDONE="true" | |
done | |
# Возвращаем исходный разделитесль строк | |
IFS=$OLDIFS | |
# Если хоть что-то изменено, то делаем update заново, чтобы новые ключи уже использовались | |
if [ $SOMETHINGDONE ] | |
then | |
sudo apt-get update | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment