Розбираємося з ключами для репозиторіїв

Проблема вирішується досить просто. Візьміть останні 8 символів коду ключа. У нашому випадку:
BE80FFE08E772DB0 -> 8E772DB0

І виконайте 2 команди:
gpg --keyserver keyserver.ubuntu.com --recv 8E772DB0

Якщо все ок, то отримуємо:
gpg: звертаюсь ключ 8E772DB0 з hkp сервера keyserver.ubuntu.com
gpg: ключ 8E772DB0 відкритий ключ "Launchpad PPA for Plasmoid" імпортований
gpg: Всього оброблено: 1
gpg: імпортовано: 1 (RSA: 1)

І друга команда:
gpg --export --armor 8E772DB0 | sudo apt-key add -

--------------------------
Автоматизація додавання ключів:
Користувач urusha вніс і свою працю в цю тему. Створіть файл check_keys.sh, його місткість:
#! / Bin / sh

KEYS = `sudo apt-get update | awk # '/ NO_PUBKEY / # ' `

if [-z $ KEYS]
then
echo "No missed public keys found."
else
echo "Missed public keys: $ KEYS"
for KEY in $ KEYS
do
gpg --keyserver keyserver.ubuntu.com --recv $ KEY \
gpg --export --armor $ KEY | sudo apt-key add - \
echo "Public key $ KEY has been added."
done
fi

А ось і мій скрипт на python (getkey.py):
# - * - coding: utf-8 - * -
import sys, os

Думаю, що цей метод самий елементарний.

Програми для музиканта (тільки вільне ПЗ) Керівництво по apt-get та aptitude

Цікаво, що man apt-key натякає на те що замість:
gpg --keyserver keyserver.ubuntu.com --recv KEYKEYKEYKEY
gpg --export --armor KEYKEYKEYKEY | sudo apt-key add -
можна просто, однією командою:
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com KEYKEYKEYKEY
і різати id ключа до останніх 8 цифр зовсім не обов'язково, всетаки;)
так що можна підправити рецепти.

написав не в ту гілку (

На нетбуці без миші не зручно додавати всі ці ключі, тому написав скрипт check_keys.sh
запускається від звичайного користувача, додає все ключі на які скаржиться apt-get update
#! / Bin / sh

KEYS = `sudo apt-get update | awk # '/ NO_PUBKEY / # ' `

if [-z $ KEYS]
then
echo "No missed public keys found."
else
echo "Missed public keys: $ KEYS"
for KEY in $ KEYS
do
gpg --keyserver keyserver.ubuntu.com --recv $ KEY \
gpg --export --armor $ KEY | sudo apt-key add - \
echo "Public key $ KEY has been added."
done
fi

Оновив, тепер доступний і мій варіант скрипта на Python.
UPD. Тепер можна скачати (за посиланням вище) інсталяційний пакет мого скрипта, для більш простої роботи.

Тут трохи некоректне питання. Скрипти які? Та й такого поняття як просто скрипт немає. Для початку вам потрібно розібратися, що ви хочете зробити. Є bash-скрипти, вони підійдуть тільки для * nix і працюють в певній галузі. Можна використовувати скриптові мови програмування (python, ruby, perl). Найпростіший серед них - python, на якому я і написав скрипт вище. Виберіть, що ви хочете робити з цими скриптами - я вам підкажу літературу.

Припустимо писати програмку для кубунту десктоп простеньку.

відоме справу за який: з художньої! %)

При виконанні sudo python setup.py відбувається наступне:

usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts]. ]
or: setup.py --help [cmd1 cmd2. ]
or: setup.py --help-commands
or: setup.py cmd --help

error: no commands supplied.
Поясніть, будь ласка, що робити! Досвід роботи в Лінуксі - тиждень. =)
P.S. Система Kubuntu 9.04

Дякуємо! Допоміг перший варіант але і останній скрипт теж собі зберіг.
Величезна подяка!

відмінно!
тільки що нарешті-то розібрався аж з 4-ма ключами - задоволений як слон на складі бананів;)

if [-z $ 1]
then
KEYS = `sudo apt-get -qq update 2> 1 | awk # '/ NO_PUBKEY / # '| uniq`
if [-z $ KEYS]
then
echo "No missed public keys found."
else
echo "Missed public keys: $ KEYS"
for KEY in $ KEYS
do
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com $ KEY \
echo "Public key $ KEY has been added."
done
fi
else
KEYS = `echo $ @ | tr # '\ # ' # '\ N #' | grep # '\ ([[: Alnum:] _] \ | [a-fA-F] \) \ #' | uniq | tr # '\ N #' # '\ # ' `
echo "Public keys to add: $ KEYS"
for KEY in $ KEYS
do
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com $ KEY> / dev / null \
echo "Public key $ KEY has been added."
done
fi

Ось ще один скрипт, знав би про ваших варіантах може і не слабал б його на коліні.

print "Будь ласка запасіться терпінням, ми отримуємо відсутні ключі. \ nЕто досить довгий процес, особливо на слабких інтернет каналах. \ n"
outp = commands.getoutput ( "sudo apt-get update")

spos = string.find (outp, # 'NO_PUBKEY # ')
if spos <0:
print "Вітаємо! У вас все репозиторії мають ключ верифікації. \ n"
quit ()

for line in outp:
spos = string.find (line, # 'NO_PUBKEY # ')
if spos> 0:
spos + = 10
line = line [spos:]
print "Ключ" + line + "успішно доданий."
commandOutput = commands.getoutput ( "sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com" + line + "")

Переробив немного.Для використання наберіть в терміналі python путь_к_скріпту / его_імя.py і все подані вами репозиторії отримають свої ключі.За код сильно не штовхати - третій день всього вчу пітон :)

print "Будь ласка запасіться терпінням, ми отримуємо відсутні ключі. \ nЕто досить довгий процес, особливо на слабких інтернет каналах. \ n"
outp = commands.getoutput ( "sudo apt-get update")

if re.search (ur "NO_PUBKEY", outp):

for line in outp:
match = re.search (ur "[/ nA-Z0-9]", line)
if match> 0:
key = match.group ()
print "Ключ" + key + "успішно доданий."
commandOutput = commands.getoutput ( "sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com" + key + "")

else:
print "Вітаємо! У вас все репозиторії мають ключ верифікації. \ n"
quit ()

у мене не хоче ключ отримувати, пише:
gpg --keyserver keyserver.ubuntu.com --recv 8AC93F7A
gpg: звертаюсь ключ 8AC93F7A з hkp сервера keyserver.ubuntu.com
gpg: перевищено час очікування сервера ключів
gpg: збій при отриманні з сервера ключів: помилка сервера ключів

допоможіть будь ласка, інет в порядку

Схожі статті