Tomsk Sysadmins Forum
Unix => SuSE => Topic started by: SirYorik on February 10, 2008, 19:23:31
-
намедни видимо сменилась структура репозитариев на фтп..
врукопашную преподключать мне стало лень..
сперва скрипт (точнее однострочная команда) который сносит все подключенные репозитарии кроме 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 (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
распространяется без гарантий!
-
удачно подключаются 40 репозитариев, кроме одного:
есть такая проблема временного характера. этого репозитария, к сожалению, еще физически нет, надеялся, что скачается значительно быстрее.
-
вау, учтем в будущем
-
этот ужас предназначен для сноса репозитариев содержащих пробелы в алиасах, типа '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
-
побыстрому посмотреть содержимое репозитария можно поисковой командой зиппера без указания поисковой строки, но с указанием алиаса репозитария:
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)
-
очередное квазимодо
[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 наверное проще прикрутить , ибо ну оооочень долго
-
а не проще ли прописать файлики с репозиториями и потом зайти в /etc/zypper/repos.d/ и разместить их там? я пробовал так же всё прописывать в один файлик, вроде даже получалось. и ен каких скриптов и программирований. просто меняем файлики *.repo на свои и всё.
-
ну и после подключения репозитариев лучше сразу выполнить yes | zypper ref
-
Скрипт что-то не все репозитарии подключает.... Я так понимаю - также как и было - этих репозитариев ещё физически нет?
[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
-
Скрипт что-то не все репозитарии подключает.... Я так понимаю - также как и было - этих репозитариев ещё физически нет?
Все верно - этих репозиториев физически нет на сервере, и не будет уже Советую обновить кеш, т.к. файл со списком реп у вас устаревший.
-
Поставил OpenSuse 11.0/ решил подключить репозитарии - в скрипте заменил 10.3 на 11.0, но ни одного репозитария не подключилось, исправил на 10.3 - подключились. В чем подвох?. Ещё вопрос возник пока читал тему - а что разве нельзя чтобы алиас содержал пробелы?
-
в скрипте заменил 10.3 на 11.0, но ни одного репозитария не подключилось, исправил на 10.3 - подключились. В чем подвох?.
еще имя файла сменилось на "wget http://suse.tomsk.ru/ (http://suse.tomsk.ru/)repositories.html .... cat repositories.html ...." вместо repository.html
пробелы можно
но для скриптования неудобно