<< В начало

Ключи для репо автоматом

Администрирование

15.07.2009 2 года, 6 месяцев назад

Лень добавлять ключи постоянно в apt, когда новый источник добавляю в apt/sources.list, поэтому положил туда скрипт, который автоматом добавляет их с ppa.launchpad.net.

  1. #! /bin/sh
  2.  
  3. # Simple script to check for all PPAs refernced in your apt sources and
  4. # to grab any signing keys you are missing from keyserver.ubuntu.com.
  5. # Additionally copes with users on launchpad with multiple PPAs
  6. # (e.g., ~asac)
  7. #
  8. # Author: Dominic Evans https://launchpad.net/~oldman
  9. # License: LGPL v2
  10.  
  11. for APT in `find /etc/apt/ -name *.list`; do
  12.     grep -o "^deb http://ppa.launchpad.net/[a-z0-9\-]\+/[a-z0-9\-]\+" $APT | while read ENTRY ; do
  13.         # work out the referenced user and their ppa
  14.         USER=`echo $ENTRY | cut -d/ -f4`
  15.         PPA=`echo $ENTRY | cut -d/ -f5`
  16.         # some legacy PPAs say ‘ubuntu’ when they really mean ‘ppa’, fix that up
  17.         if [ "ubuntu" = "$PPA" ]
  18.         then
  19.             PPA=ppa
  20.         fi
  21.         # scrape the ppa page to get the keyid
  22.         KEYID=`wget -q –no-check-certificate https://launchpad.net/~$USER/+archive/$PPA -O- | grep -o "1024R/[A-Z0-9]\+" | cut -d/ -f2`
  23.         sudo apt-key adv –list-keys $KEYID >/dev/null 2>&amp;1
  24.         if [ $? != 0 ]
  25.         then
  26.             echo Grabbing key $KEYID for archive $PPA by ~$USER
  27.             sudo apt-key adv –recv-keys –keyserver keyserver.ubuntu.com $KEYID
  28.         else
  29.             echo Already have key $KEYID for archive $PPA by ~$USER
  30.         fi
  31.     done
  32. done
  33.  
  34. echo DONE