Author Topic: скрипт для замены подключенных репозитариев  (Read 5559 times)

0 Members and 1 Guest are viewing this topic.

Offline SirYorik

  • Full Member
  • ***
  • Posts: 136
  • Karma: +3/-3
  • ccnas
намедни видимо сменилась структура репозитариев на фтп..
врукопашную преподключать мне стало лень..


сперва скрипт (точнее однострочная команда) который сносит все подключенные репозитарии кроме DVD диска:
[div class=\'codetop\']CODE[div class=\'codemain\' style=\'height:200px;white-space:pre;overflow:auto\']for ra in $(zypper lr | grep -vE '\-\-\-'\|'#'\|'DVD' | cut -d\| -f5) ; do zypper rr $ra ; done ; zypper lr
пригодится в опытах со следующим скриптом

а теперь подключаем ВСЕ 10.3 репозитарии упомянутые на странице сайта
[div class=\'codetop\']CODE[div class=\'codemain\' style=\'height:200px;white-space:pre;overflow:auto\']
wget http://suse.tomsk.ru/repository.html ; for r in `cat repository.html | sed -e 's/>/>/g' | grep '<a' | while IFS='"' read a b c d e; do echo $d; done | grep 10.3 | tee temp | cut -d/ -f7-10 | tr -d ":."  | tr "/-" "_" | paste -d~ - temp` ; do rn=$(echo $r | cut -d~ -f1) ; ru=$(echo $r | cut -d~ -f2) ; zypper ar $ru $rn  ; done ; rm temp ; zypper lr

(это одна строка!) (увлекающиеся спортивным программированием в баш могут заняться оптимизацией   )



ненужные репозитарии можно потом выключить|включить через zypper mr -d|-e <alias>
и вообще man zypper


удачно подключаются 40 репозитариев, кроме одного:
[div class=\'codetop\']CODE[div class=\'codemain\' style=\'height:200px;white-space:pre;overflow:auto\']
* Adding repository 'KDE_KDE3_openSUSE_103'
Can't find a valid repository at given location:
Could not determine the type of the repository. Please, check if the defined URLs (see below) point to a valid repository:ftp://suse.tomsk.ru/pub/opensuse/repositories/KDE:/KDE3/openSUSE_10.3



распространяется без гарантий!
« Last Edit: February 10, 2008, 19:25:39 by SirYorik »

Offline n-di

  • Moderator
  • Sr. Member
  • *****
  • Posts: 311
  • Karma: +0/-0
    • http://suse.tomsk.ru/
Quote from: SirYorik
удачно подключаются 40 репозитариев, кроме одного:
есть такая проблема временного характера. этого репозитария, к сожалению, еще физически нет, надеялся, что скачается значительно быстрее.

Offline Boten Melnik

  • Newbie
  • *
  • Posts: 7
  • Karma: +0/-0
вау, учтем в будущем
Да прибудет с тобой rm...

Offline SirYorik

  • Full Member
  • ***
  • Posts: 136
  • Karma: +3/-3
  • ccnas
этот ужас предназначен для сноса репозитариев содержащих пробелы в алиасах, типа 'Main Repository (NON-OSS)'

[div class=\'codetop\']CODE[div class=\'codemain\' style=\'height:200px;white-space:pre;overflow:auto\']echo "$( zypper lr | grep -vE '\-\-\-'\|'#'\|'DVD' | cut -d\| -f5 )"  | xargs -d\| | sed -e "s/^ /zypper rr \"/" -e "s/$/\"/" | sed "s/  */ /g" | sed "s/ \"$/\"/" | grep -ve ^\" > tmtm.sh ; sh tmtm.sh ; rm tmtm.sh ; zypper lr


[div class=\'codetop\']CODE[div class=\'codemain\' style=\'height:200px;white-space:pre;overflow:auto\']* Cleaning repository 'Main Repository (NON-OSS)' cache
* Removing repository 'Main Repository (NON-OSS)'
Repository Main Repository (NON-OSS) has been removed.
* Cleaning repository 'Main Repository (OSS)' cache
* Removing repository 'Main Repository (OSS)'
Repository Main Repository (OSS) has been removed.
# | Enabled | Refresh | Type  | Alias                  | Name                  
--+---------+---------+-------+------------------------+-----------------------
1 | Yes     | No      | yast2 | openSUSE-10.3-DVD 10.3 | openSUSE-10.3-DVD 10.3
« Last Edit: March 06, 2008, 14:33:11 by SirYorik »

Offline SirYorik

  • Full Member
  • ***
  • Posts: 136
  • Karma: +3/-3
  • ccnas
побыстрому посмотреть содержимое репозитария можно поисковой командой зиппера без указания поисковой строки, но с указанием алиаса репозитария:

zypper se -r filesystems_openSUSE_103

zypper se -r filesystems_openSUSE_103  -u   (а с ключиком -u покажет только НЕустановленные пакеты)


пример на репозитарии NX

[div class=\'codetop\']CODE[div class=\'codemain\' style=\'height:200px;white-space:pre;overflow:auto\']js:~ # zypper se -r NX_openSUSE_103
Refreshing 'NX_openSUSE_103'
* Building repository 'NX_openSUSE_103' cache
* Reading installed packages [100%]

S | Repository      | Type    | Name    | Version           | Arch
--+-----------------+---------+---------+-------------------+-----
  | NX_openSUSE_103 | package | FreeNX  | 0.7.1-6.1         | i586
  | NX_openSUSE_103 | package | NX      | 2.1.0-130.1       | i586
  | NX_openSUSE_103 | package | NX3     | 3.0.0-47.1        | i586
  | NX_openSUSE_103 | package | knx     | 0.1-37.1          | i586
  | NX_openSUSE_103 | package | nxshell | 1.3-27.1          | i586
  | NX_openSUSE_103 | package | qtnx    | 0.0.1SVNr281-78.1 | i586
js:~ #


думаю понятно, что запускать это на очень больших репозитариях не стоит (OSS, Pacman, 10.3, updates)

Offline SirYorik

  • Full Member
  • ***
  • Posts: 136
  • Karma: +3/-3
  • ccnas
очередное квазимодо

[div class=\'codetop\']CODE[div class=\'codemain\' style=\'height:200px;white-space:pre;overflow:auto\']rp=NX_openSUSE_103     ;for pk in $( zypper se -r $rp -u | tail -n +5 | cut -d\| -f4 | tr "\n" " ") ; do echo -e "$pk \t  $(zypper info -r $rp  $pk | grep "^Summary" |  sed "s/Summary:/-/")" ; done

делает так

[div class=\'codetop\']CODE[div class=\'codemain\' style=\'height:200px;white-space:pre;overflow:auto\']FreeNX    - FreeNX Application and Thin Client Server
NX        - Proxy System for X11
NX3       - Proxy System for X11
knx       - NX Client
nxshell           - NX Tool to start single application via NX protocol
qtnx      - a Qt based NoMachine (NX) client


но apt наверное проще прикрутить , ибо ну оооочень долго
« Last Edit: March 06, 2008, 14:28:38 by SirYorik »

Offline xardkorov

  • Newbie
  • *
  • Posts: 33
  • Karma: +0/-0
    • http://
а не проще ли прописать файлики с репозиториями и потом зайти в /etc/zypper/repos.d/ и разместить их там? я пробовал так же всё прописывать в один файлик, вроде даже получалось. и ен каких скриптов и программирований. просто меняем файлики *.repo на свои и всё.

Offline Boten Melnik

  • Newbie
  • *
  • Posts: 7
  • Karma: +0/-0
ну и после подключения репозитариев лучше сразу выполнить yes | zypper ref
Да прибудет с тобой rm...

Offline КотоВАС

  • Newbie
  • *
  • Posts: 31
  • Karma: +1/-0
Скрипт что-то не все репозитарии подключает.... Я так понимаю - также как и было - этих репозитариев ещё физически нет?

[div class=\'codetop\']CODE[div class=\'codemain\' style=\'height:200px;white-space:pre;overflow:auto\']
* Добавляется репозитарий 'xorg73_openSUSE_103'
Невозможно найти допустимый репозитарий в данном месте:
Не удалось определить тип репозитария. Проверьте, указывают ли введенные URL-адр
еса (см. ниже) на допустимый репозитарий:ftp://suse.tomsk.ru/pub/opensuse/reposi
tories/xorg73/openSUSE_10.3

* Добавляется репозитарий 'X11_Drivers_Video_radeonhd'
Невозможно найти допустимый репозитарий в данном месте:
Не удалось определить тип репозитария. Проверьте, указывают ли введенные URL-адр
еса (см. ниже) на допустимый репозитарий:ftp://suse.tomsk.ru/pub/opensuse/reposi
tories/X11:/Drivers:/Video:/radeonhd/openSUSE_10.3

* Добавляется репозитарий 'games_action_openSUSE_103'
Невозможно найти допустимый репозитарий в данном месте:
Не удалось определить тип репозитария. Проверьте, указывают ли введенные URL-адр
еса (см. ниже) на допустимый репозитарий:ftp://suse.tomsk.ru/pub/opensuse/reposi
tories/games:/action/openSUSE_10.3

* Добавляется репозитарий 'games_adventure_openSUSE_103'
Невозможно найти допустимый репозитарий в данном месте:
Не удалось определить тип репозитария. Проверьте, указывают ли введенные URL-адр
еса (см. ниже) на допустимый репозитарий:ftp://suse.tomsk.ru/pub/opensuse/reposi
tories/games:/adventure/openSUSE_10.3

* Добавляется репозитарий 'games_arcade_openSUSE_103'
Невозможно найти допустимый репозитарий в данном месте:
Не удалось определить тип репозитария. Проверьте, указывают ли введенные URL-адр
еса (см. ниже) на допустимый репозитарий:ftp://suse.tomsk.ru/pub/opensuse/reposi
tories/games:/arcade/openSUSE_10.3

* Добавляется репозитарий 'games_board_openSUSE_103'
Невозможно найти допустимый репозитарий в данном месте:
Не удалось определить тип репозитария. Проверьте, указывают ли введенные URL-адр
еса (см. ниже) на допустимый репозитарий:ftp://suse.tomsk.ru/pub/opensuse/reposi
tories/games:/board/openSUSE_10.3

* Добавляется репозитарий 'games_puzzle_openSUSE_103'
Невозможно найти допустимый репозитарий в данном месте:
Не удалось определить тип репозитария. Проверьте, указывают ли введенные URL-адр
еса (см. ниже) на допустимый репозитарий:ftp://suse.tomsk.ru/pub/opensuse/reposi
tories/games:/puzzle/openSUSE_10.3

* Добавляется репозитарий 'games_roleplay_openSUSE_103'
Невозможно найти допустимый репозитарий в данном месте:
Не удалось определить тип репозитария. Проверьте, указывают ли введенные URL-адр
еса (см. ниже) на допустимый репозитарий:ftp://suse.tomsk.ru/pub/opensuse/reposi
tories/games:/roleplay/openSUSE_10.3

* Добавляется репозитарий 'games_strategy_realtime_openSUSE_103'
Невозможно найти допустимый репозитарий в данном месте:
Не удалось определить тип репозитария. Проверьте, указывают ли введенные URL-адр
еса (см. ниже) на допустимый репозитарий:ftp://suse.tomsk.ru/pub/opensuse/reposi
tories/games:/strategy:/realtime/openSUSE_10.3

* Добавляется репозитарий 'games_strategy_turn_based_openSUSE_103'
Невозможно найти допустимый репозитарий в данном месте:
Не удалось определить тип репозитария. Проверьте, указывают ли введенные URL-адр
еса (см. ниже) на допустимый репозитарий:ftp://suse.tomsk.ru/pub/opensuse/reposi
tories/games:/strategy:/turn-based/openSUSE_10.3
 
* Добавляется репозитарий 'games_libs_openSUSE_103'
Невозможно найти допустимый репозитарий в данном месте:
Не удалось определить тип репозитария. Проверьте, указывают ли введенные URL-адр
еса (см. ниже) на допустимый репозитарий:ftp://suse.tomsk.ru/pub/opensuse/reposi
tories/games:/libs/openSUSE_10.3


Offline n-di

  • Moderator
  • Sr. Member
  • *****
  • Posts: 311
  • Karma: +0/-0
    • http://suse.tomsk.ru/
Quote from: КотоВАС
Скрипт что-то не все репозитарии подключает.... Я так понимаю - также как и было - этих репозитариев ещё физически нет?
Все верно - этих репозиториев физически нет на сервере, и не будет уже  Советую обновить кеш, т.к. файл со списком реп у вас устаревший.

Offline КотоВАС

  • Newbie
  • *
  • Posts: 31
  • Karma: +1/-0
Поставил OpenSuse 11.0/ решил подключить репозитарии - в скрипте заменил 10.3 на 11.0, но ни одного репозитария не подключилось, исправил на 10.3 - подключились.  В чем подвох?. Ещё вопрос возник пока читал тему - а что разве нельзя чтобы алиас содержал пробелы?

Offline SirYorik

  • Full Member
  • ***
  • Posts: 136
  • Karma: +3/-3
  • ccnas
Quote from: КотоВАС
в скрипте заменил 10.3 на 11.0, но ни одного репозитария не подключилось, исправил на 10.3 - подключились.  В чем подвох?.

еще имя файла сменилось на "wget http://suse.tomsk.ru/repositories.html .... cat repositories.html ...." вместо repository.html


пробелы можно
но для скриптования неудобно
« Last Edit: August 31, 2008, 09:34:12 by SirYorik »