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

Изображение пользователя Ockonal.

Для безопасности пользователей, были введены ключи для репозитариев, чтобы подтверждать их надежность. Представьте себе, что будет, если в репозитарий покласть что-то лишнее =). С одной стороны, это хорошо, а с другой - не очень. В том плане, что новички просто теряются.
Иногда ключи нужно обновлять, а как это сделать знает не каждый. Представьте ситуацию: вы пытаетесь получить обновления, и консоль выдает вам что-то типа:
W: Ошибка: http://ppa.launchpad.net jaunty Release: Следующие подписи не могут быть проверены, так как недоступен открытый ключ: NO_PUBKEY BE80FFE08E772DB0

Проблема решается довольно просто. Возьмите последние 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/ {print($NF)}'`

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

if not 'linux' in sys.platform:
    print 'This script is for linux only'
else:
    if len(sys.argv) <= 1:
        print 'No arguments'
    else:
        for i in range (len(sys.argv)-1):
            sNeedKey = sys.argv[i+1][-8:]
            sSysRequest = 'gpg --keyserver keyserver.ubuntu.com --recv {0} && gpg --export --armor {0} | sudo apt-key add --'.format(sNeedKey)
            try:
                os.system(sSysRequest)
            except error:
                print 'Can`t add need key: ' + str(error)

Использовать так (можно несколько ключей-аргументов):
python getkey.py BE80FFE08E772DB0
python getkey.py BE80FFE08E772DB0 4CF19C3233BAC1B3

Сейчас делаю инсталлер к скрипту, чтобы можно было глобально использовать
UPD: Сделал пакет, качаем приложенный файл к посту. Делаем распаковку, устанавливаем:
sudo python setup.py install
После этого наш скрипт будет прописан глобально в системе. В любой директории можно выполнить команду:
getkey.py BE80FFE08E772DB0
getkey.py BE80FFE08E772DB0 4CF19C3233BAC1B3

Скачать пакет можно по этому адресу (форум запретил такие вложения).

Думаю, что этот метод самый простый.

Комментарии (56)

0
Infinitiv - 17 Май, 2009 - 13:48
Изображение пользователя Infinitiv.

В общем зря они это сделали... Механизм сложный и неинтуитивный. Нужен GUI.

+2
Ockonal - 17 Май, 2009 - 14:03
Изображение пользователя Ockonal.

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

+1
FHunter - 17 Май, 2009 - 22:32

Да как же может не быть GUI? =) Уже все сделали, просто немного телодвижений больше делать надо...

Привиду пример для репозитория kubuntu-experimental/ppa/ubuntu

Вот мы не знали этот репозиторий, а нам сказали его добавить, чтобы от туда что-то установить - это самый сложный случай :)

Обновляемся - видим сообщение
"W: Ошибка: http://ppa.launchpad.net jaunty Release: Следующие подписи не могут быть проверены, так как недоступен открытый ключ: NO_PUBKEY 60487016493B3065"
Упс

Пол логике: нет ключей, но есть центральный механизм keyserver.ubuntu.com
Топаем на этот сайт

В поле Search String вводим тот самый страшный набор символов в формате (согласно подсказке) 0x, например "0x60487016493B3065".

В моем случае поиск выводит на:
http://keyserver.ubuntu.com:11371/pks/lookup?search=0x60487016493B3065&op=vindex

Вверху читаем внимательно, видим строчку:
pub 1024R/493B3065 2009-01-21
Вот эта ссылка и есть наш ключ!

Переходим, копируем содержимое страницы в любимый редактор и сохраняем, например в ~/key.pgp

Открываем любимое приложение для управления пакетами и импортируем ключ.
На примере kpackagekit:
Settings->Edit Software Sources-> (в новом окошке) вкладка Authentication -> (кнопка) Import Key File -> выбираем сохраненный ~/key.pgp

На мой взгляд все гораздо легче, если вы сами добавляете репозиторий, а не действуете по наводке - все упрощается :)

Вот например вы сами нашли на ланчпаде проект "Project Neon"
Смотрим на страницу внимательнее и видим текст:
This repository is signed with 1024R/0F7992B0 OpenPGP key. Follow these instructions for installing packages from this PPA.

Переходим сразу по ссылке - там ключ. Сохраняем, импортируем.... все очень даже понятно :)

+2
Ockonal - 17 Май, 2009 - 23:27
Изображение пользователя Ockonal.

Можно извращаться как только сможешь =). Суть в том, что время мне дорого... И каждый раз заходить, вбивать ключ, качать его, устанавливать... Если я смогу это 1 командой из консоли + копи/паст ключа.
ИМХО

0
FHunter - 18 Май, 2009 - 00:00

К счастью, мне тоже удобнее зачастую воспользоваться консолью. И это касается не только добавления ключа =)

Но я в своем посте и не утверждал, как вам возможно показалось, что через графику проще. Я вообще не на ваш пост отвечал.

Пользователь с ником Infinitiv сказал, что нужен гуй, я описал, как гуй использовать.

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

0
Ockonal - 18 Май, 2009 - 00:02
Изображение пользователя Ockonal.

Да, извиняюсь. Поздно уже, не доглядел =).

0
FHunter - 18 Май, 2009 - 00:05

;)

0
Гость - 22 Октябрь, 2009 - 11:49

Переходим сразу по ссылке - там ключ. Сохраняем, импортируем.... все очень даже понятно
Переходим по вашей ссылке, там ключ:

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: SKS 1.0.10

mI0ESXTXjwEEALR/KX4jGCtnwfrx8ZMrQ9ypcB2xWComeRUIR0vPk+adBerReROVHaufcQ/p
fmXyO0eJTrVVxtVcyk0t+Epo3FoZSlHmpf1NNbYpTGsEJautfJSKLV+RNVb3CxvaQSnAB+27
jOsawWegcU/NzLSR3WlUhyC1gqwPYG/Lje5NnYkhABEBAAG0HkxhdW5jaHBhZCBQUEEgZm9y
IFByb2plY3QgTmVvboi2BBMBAgAgBQJJdNePAhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AA
CgkQd4l4sA95krB4ZwQAohx//vWV5oLwM62uXKRYZbyrg3aRjhjJ8GjhJLUO+XtvluyCQz5h
Y5Ipm+WcQrzeWyAd46XpquZSkvdW/PQhDlNATVPBs2Uo4rkLGN0vGtenLcb0ihXndKSaChGR
fb/Ei2a/bpRypOMw0w47+/3Vqj+zqZyD8U/jP+JJm/b7Yd8=
=UAY5
-----END PGP PUBLIC KEY BLOCK-----

Сохраняем как key.gpg (!!! а не key.pgp !!!), импортируем, получаем окошко с сообщением:

Возможно выбранный файл не является файлом ключа GPG или поврежден.

При этом, в то же самое время:

$ wget -q http://wine.budgetdedicated.com/apt/387EE263.gpg -O- | sudo apt-key add -
OK

+2
Woland61 - 17 Май, 2009 - 14:05

за инструкцию респект )

0
buba - 17 Май, 2009 - 14:10
Изображение пользователя buba.

Никогда не сталкивался с такой проблемой... Первый раз вижу и слышу...
Считаю ключи - отличной системой защиты. Никогда не испытывал проблемы с этим.

0
Ockonal - 17 Май, 2009 - 14:11
Изображение пользователя Ockonal.

Значит Вам просто повезло. Я в свое время много перетерпел их...

+1
buba - 17 Май, 2009 - 14:15
Изображение пользователя buba.

Может быть это в новых дистрибутивах?
У меня 8.04.2

0
Ockonal - 17 Май, 2009 - 14:21
Изображение пользователя Ockonal.

Не, это здесь ни при чем. Защита была везде. Вам просто везло, говорю же =) Или вы не так часто добавляете новые репозитарии.

+1
buba - 17 Май, 2009 - 14:27
Изображение пользователя buba.

Второе! Я их вообще не добавляю)
4х мне хватает)
В любом случае - за статью респект)

0
Positron - 17 Май, 2009 - 14:31
Изображение пользователя Positron.

Полезная статья. Особенно такая проблема возникает с репозиториями игр.

0
baster - 17 Май, 2009 - 14:44
Изображение пользователя baster.

спасибо ) недавно столкнулся с такой траблой, теперь знаю что делать =)

0
Гость - 17 Май, 2009 - 15:40

спасибо

+1
urusha - 23 Май, 2009 - 17:32
Изображение пользователя urusha.

Интересно, что 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 цифр совсем не обязательно, всетаки;)
так что можно подправить рецепты.

написал не в ту ветвь(

+6
urusha - 17 Май, 2009 - 15:42
Изображение пользователя urusha.

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

KEYS=`sudo apt-get update | awk '/NO_PUBKEY/ {print($NF)}'`

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

+3
Ockonal - 17 Май, 2009 - 17:15
Изображение пользователя Ockonal.

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

+3
Voyageur - 17 Май, 2009 - 17:25
Изображение пользователя Voyageur.

Мне кажется, можно в подшивку отправить!

0
COMRADE_ARTYOM - 17 Май, 2009 - 19:31

правильно слово пишется "репозитОрий" и никак иначе.
в остальном статья очень хорошая. спасибо!

0
Ockonal - 17 Май, 2009 - 19:59
Изображение пользователя Ockonal.

Всегда пожалуйста ;)
А вот это спорный вопрос, как пишется =). Мне больше по душе репозитОрий, не знаю, почему здесь через А писал.

+3
balamutick - 18 Май, 2009 - 10:27
Изображение пользователя balamutick.

Через "О" действительно правильно, я специально изучал этот вопрос, есть люди разделяющие написание через "А", но они грамматическое меньшинство и те правила которые есть явно в защиту "О".

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

+1
mityukov - 18 Май, 2009 - 14:06
Изображение пользователя mityukov.

Спасибо за статью - очень познавательно. Единственное, хотелось бы еще узнать как посмотреть детальную инфу о неподписаном репозитории, прежде чем импортировать его ключ в систему.. Не для того из создавали, надо полагать, чтобы все подряд потом скриптами одобрять ;-)

"Launchpad PPA for Plasmoid" -- слишком малоинформативно. Нет ли способов вытянуть из key-server'а поболее инфы (включая ссылку на страницу проекта в Launchpad)?

0
Гость - 18 Май, 2009 - 22:00

gui-apt-key

0
Гость - 1 Февраль, 2014 - 22:56

Точно. Взять key id, вставить его в соответствующее поле внизу окна утилиты, нажать Add

0
marg12 - 20 Май, 2009 - 11:36
Изображение пользователя marg12.

А скрипты лучше изучать по какой литературе?

0
Ockonal - 20 Май, 2009 - 15:04
Изображение пользователя Ockonal.

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

0
marg12 - 17 Июнь, 2009 - 11:39
Изображение пользователя marg12.

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

0
Mike - 5 Июнь, 2009 - 11:48
Изображение пользователя Mike.

известное дело по какой: по художественной! %)

0
Гость - 4 Июнь, 2009 - 23:10

При выполнении 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

0
Гость - 9 Июнь, 2009 - 09:33

Спасибо! Помог первый вариант но и последний скрипт тоже себе сохранил.
Огромная благодарность!

0
Fractal - 10 Июнь, 2009 - 13:24
Изображение пользователя Fractal.

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

0
nemon - 17 Июнь, 2009 - 01:08

Доброго времени суток. Подскажите по первому скрипту, что не так. Запускаю скрипт, в ответ почти сразу получаю W: Ошибка: http://archive.infralinux.org jaunty-updates Release: Следующие подписи не могут быть проверены, так как недоступен открытый ключ: NO_PUBKEY CAEFE9CA490EA7C5
W: Вы можете запустить 'apt-get update' для исправления этих ошибок
после чего секунд 10-15 тишина и потом No missed public keys found.
Up!: после изменения скрипта до вида #!/bin/sh
KEYS=`sudo apt-get update`
echo "keys-$KEYS"
в ответ получил W: Ошибка: http://archive.infralinux.org jaunty-updates Release: Следующие подписи не могут быть проверены, так как недоступен открытый ключ: NO_PUBKEY CAEFE9CA490EA7C5
W: Вы можете запустить 'apt-get update' для исправления этих ошибок
keys-Получено:1 http://archive.infralinux.org jaunty-updates Release.gpg [197B]
Игн http://archive.infralinux.org jaunty-updates/restricted Translation-ru
Получено:2 http://archive.infralinux.org jaunty-updates Release [8867B]
Игн http://archive.infralinux.org jaunty-updates Release
Получено:3 http://archive.infralinux.org jaunty-updates/restricted Packages [14B]
Получено 9078Б за 1s (7299Б/c)
Чтение списков пакетов...
т.е. получается фраза про отсутствие ключа не попадает в переменную кейс?

0
urusha - 1 Июль, 2009 - 18:30
Изображение пользователя urusha.

Да, с момента публикации нашлось пару глюков... Вот поправленный + с функционалом скрипта Ockonal'a, то есть им можно не только проверять, все ли с ключами ок, но и просто добавлять свои...
#!/bin/sh

if [ -z $1 ]
then
    KEYS=`sudo apt-get -qq update 2>&1 | awk '/NO_PUBKEY/ {print($NF)}' | 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]\)\{8,\}' | 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

0
Гость - 8 Июль, 2009 - 21:15

Вот ещё один скрипт,знал бы о ваших вариантах может и не слабал бы его на коленке.

#!/usr/bin/env python
# -*- coding: utf8 -*-
#Скрипт для добавления ключей репозиториям,добавленным вами вручную.Опупликовано по лицензии GPL V2 или выше.(с) 2009 GnuReality
#e-mail:[email protected]
import os.path,sys,string,commands

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

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

outp = outp.split("\n")

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 + " ")

0
Гость - 10 Июль, 2009 - 23:06

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

#!/usr/bin/env python
# -*- coding: utf8 -*-
#Скрипт для добавления ключей репозиториям,добавленным вами вручную.Опупликовано по лицензии GPL V2 или выше.(с) 2009 GnuReality
#e-mail:[email protected]
import os.path,sys,string,commands,re

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

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

        outp = outp.split("\n")

        for line in outp:
                match = re.search( ur"[/nA-Z0-9]{16}", 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()

0
BloodOfGods - 20 Сентябрь, 2009 - 18:30
Изображение пользователя BloodOfGods.

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

помогите пожалуйста, инет в порядке

0
picaro - 20 Сентябрь, 2009 - 20:06
Изображение пользователя picaro.

Сервер не отвечает, попробуй ещё раз!

0
BloodOfGods - 24 Сентябрь, 2009 - 20:02
Изображение пользователя BloodOfGods.

да я уже полдня пробовал....

0
Гость - 13 Октябрь, 2009 - 23:56

За инструкцию +100 иначе башку бы поломал...

0
Гость - 28 Ноябрь, 2009 - 08:14

Был глюк
Release: Следующие подписи не могут быть проверены, так как недоступен общий ключ: NO_PUBKEY 451
W: Не удалось загрузить http://gq.net.ru/ubuntu/dists/hardy/Release
Вылечил удалением из репозитория и повторного включения в него и получения ключа ;-)

0
Гость - 22 Январь, 2010 - 23:26

Спасибо!!!! Очень помогло!!!!

0
mityukov - 11 Февраль, 2010 - 18:40
Изображение пользователя mityukov.

Статья не совсемполная. У меня, например, сейчас вот такой вывод:

Reading package lists... Done
W: GPG error: http://debway.org.ua unstable Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY E4F004CADB0212B5

$ gpg --keyserver keyserver.ubuntu.com --recv DB0212B5
gpg: requesting key DB0212B5 from hkp server keyserver.ubuntu.com
gpgkeys: key DB0212B5 not found on keyserver
gpg: no valid OpenPGP data found.
gpg: Total number processed: 0

Какие еще бывают keyservers, и как узнать какой именно требуется указать для конкретного репозитория?

0
KooSt.HruSt - 24 Май, 2010 - 19:58
Изображение пользователя KooSt.HruSt.

а у вас такое бывает при запросе ключей для репозиториев:
gpg: запрашиваю ключ ******** с hkp сервера keyserver.ubuntu.com
gpg: превышено время ожидания сервера ключей
gpg: сбой при получении с сервера ключей: ошибка сервера ключей

в последнее время очень затягивается этот процесс

0
trubadur4ik - 25 Май, 2010 - 11:34
Изображение пользователя trubadur4ik.

У меня такое было, но только из-за проблем с интернетом (модем 3G), скорость низкая, частые сбои.

0
KooSt.HruSt - 24 Май, 2010 - 20:05
Изображение пользователя KooSt.HruSt.

или вот такое:
gpgkeys: HTTP fetch error 56: Failure when receiving data from the peer
gpg: не найдено данных формата OpenPGP.
gpg: Всего обработано: 0

0
uicraor - 24 Май, 2010 - 21:26
Изображение пользователя uicraor.

у меня такого точно не было... :)
добавлял ключи безз проблем! :D

+4
uicraor - 22 Август, 2010 - 17:38
Изображение пользователя uicraor.

Если нужно добавить несколько ключей можно использовать такой способ, добавит все нужные ключи... =)
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com `sudo aptitude update 2>&1 | grep -o '[0-9A-Z]\{16\}$' | xargs`

0
Гость - 3 Август, 2012 - 04:14

Я сделал следующее:
gpg --keyserver keyserver.ubuntu.com --recv A6B8F63998A719B4

После чего терминал мне выдал:
gpg: запрашиваю ключ 98A719B4 с hkp сервера keyserver.ubuntu.com
gpg: не могу открыть `/home/ivan/.gnupg/pubring.gpg'
gpg: keydb_get_keyblock failed: eof
gpg: нет доступной для записи таблицы ключей: eof
gpg: ошибка чтения `[stream]': глобальная ошибка
gpg: Всего обработано: 0

Подскажите как можно исправить ситуацию?

0
DarkneSS - 3 Август, 2012 - 07:32
Изображение пользователя DarkneSS.

launchpad-getkeys

0
Гость - 3 Август, 2012 - 12:30

извините, это нужно ввести в терминал? я ввел: command not found

0
DarkneSS - 3 Август, 2012 - 14:30
Изображение пользователя DarkneSS.

Аха, сначала нужно установить. Точно есть в ppa на ланчпаде.

0
Гость - 17 Ноябрь, 2012 - 17:47

Спасибо авторам скриптов! помогла вторая редакция скрипта от urusha, питоновский не пробовал, но маст хэв!) Спасибо ребят, облегчили жизнь :)

0
rosenrot - 2 Февраль, 2014 - 13:44
Изображение пользователя rosenrot.

Отправить комментарий

CAPTCHA на основе изображений
Введите цифры