Автор Тема: Как найти пакет в altlinux с неизвестным именем?  (Прочитано 93197 раз)

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: поиск по файлу в репозитории
« Ответ #180 : 19.07.2016 10:06:55 »
Скачивать лучше через rsync, если сервер его поддерживает.

Точно, тогда rm будет не нужен.
Но sed-ом надо будет URI порезать до такого
# tail -n3 /etc/apt/sources.list.d/alt.list
#rpm [alt] rsync://ftp.altlinux.org/ALTLinux/Sisyphus i586 classic
#rpm [alt] rsync://ftp.altlinux.org/ALTLinux/Sisyphus noarch classic
Для себя на память:
чтобы не ругался что нет такого модуля.

Как-то так:
rsync --progress rsync://ftp.altlinux.org/ALTLinux/p7/branch/i586/base/contents_index ./куда


...и взять ещё на заметку #37

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: поиск по файлу в репозитории
« Ответ #181 : 19.07.2016 10:37:28 »
Да, как бы это ещё придумать, чтобы sed-ом под rsync вырезать разное количество уровней вложения по одному алгоритму:
http://ftp.altlinux.org/pub/distributions/ALTLinux/p7/branch/i586/base/contents_index
rsync://ftp.altlinux.org/ALTLinux/p7/branch/i586/base/contents_index
http://mirror.datacenter.by/pub/ALTLinux/Sisyphus/i586/base/contents_index
rsync://mirror.datacenter.by/ALTLinux/Sisyphus/i586/base/contents_index

В смысле чтобы резать
pub/distributions/
или только
pub/

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
Если вы так думаете, что пакетом XXX "никто в Альт Линукс не пользуется" - то пакет XXX нужно исключать из репозитария.
А если пакет ХХХ лежит в репозитарии - то он должен там лежать работоспособный.
Я так думаю...
Это в идеале. Тут практика другая. Если пакет понадобился, его собрали. Если мантейнер перестал им заниматься, пакет остаётся. Как только пакет перестаёт пересобираться, включается осчёт времени до выбрасывания. Либо нужна ещё какая-то причина.

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
Ну где вы увидели изменение формата? Такие изменения , в рамках мана вполне законны.
У apt-rpm нет никакого мана описывающего формат. Его не существует в природе.
В общем-то, формат у apt никто не менял и apt никто не переписывал в этом плане. apt-repo остался в рамках исходного формата: apt же как-то его понимает.

ms1984

  • Гость
Re: Про поиск пакета по файлу
« Ответ #184 : 19.07.2016 16:24:31 »
 
Я не уверен, что вы поняли из этого хотя бы половину

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

Оффлайн sb

  • Модератор глобальный
  • *****
  • Сообщений: 8 991
Re: поиск по файлу в репозитории
« Ответ #185 : 19.07.2016 17:26:07 »
Короче говоря, получился тупой скрипт, который не успокоится, пока не выкачает для каждого подходящего uri индекс и не получит тем самым его локальную копию, в которой уже можно grep'ать. Убрал возможность обновления индекса, т.к. wget может выкачать совершенно неадекватный индекс в случае, если к индексу не просто что-то добавили, но и удалили какую-то часть (либо модифицировали). wget в подобном случае делает вид, что докачивает, но на самом деле полученный файл с оригиналом в репозитории не совпадает.
Дальнейшая доработка может свестись к применению rsync (вместо wget), который у меня на альтовом репозитории не работает и который, тем самым, я проверить не могу да не имею на то особого желания. Также, имеет смысл обрабатывать случаи с репозиториями task, когда файл индекса является модифицированной копией индекса основного репозитория и может иметь смысл, прежде чем выкачивать такой индекс, сначала скопировать в директорию имеющийся локальный индекс основного репозитория и уже после это делать синхронизацию на пускай и не полный, но зато содержащий львиную долю информации из индекса репозитория task. В связи с тем, что я писал для wget, я не стал писать подобную обработку ввиду отсутствия в этом смысла.

Оффлайн sb

  • Модератор глобальный
  • *****
  • Сообщений: 8 991
С переменным успехом :D :
С этим вариантом должно сработать: https://forum.altlinux.org/index.php?topic=34714.msg291026#msg291026
Можете проверить, если есть возможность и время. Интересен результат...

Оффлайн stranger573

  • Мастер
  • ***
  • Сообщений: 1 434
    • Email
остался в рамках исходного формата: apt же как-то его понимает.
Есть сведения, что не очень:
Когда я обновлялся с р7 до р8, в /etc/apt/sources.list.d/alt.list просто поменял р7 на р8 и получил облом. Нет такого репозитория.
Вот эта проверка не валидна:
Вот для снавнения остались записи р7. р8 заработало только с пробелом.
Вы так убедительно говорите, что мне пришлось проверить. Работают и старый и новый вариант.
Привожу старый работаюший вариант:

Цитировать
rpm [updates] http://ftp.altlinux.org/pub/distributions/ALTLinux/p8/branch x86_64 classic
rpm [updates] http://ftp.altlinux.org/pub/distributions/ALTLinux/p8/branch noarch classic
rpm [updates] http://ftp.altlinux.org/pub/distributions/ALTLinux/p8/branch x86_64-i586 classic
ибо при обновлении с p7 на p8 обновления выкачивает и устанавливает p7. А проверка делается на p8.

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
остался в рамках исходного формата: apt же как-то его понимает.
Есть сведения, что не очень:
Когда я обновлялся с р7 до р8, в /etc/apt/sources.list.d/alt.list просто поменял р7 на р8 и получил облом. Нет такого репозитория.
Это неверные сведения. Запись вида
rpm [updates] http://ftp.altlinux.org/pub/distributions/ALTLinux p6/branch/x86_64 classic
rpm [updates] http://ftp.altlinux.org/pub/distributions/ALTLinux p6/branch/noarch classic
замечательно работает даже в p6:

# apt-get update
Get:1 http://ftp.altlinux.org p6/branch/x86_64 release [896B]
Get:2 http://ftp.altlinux.org p6/branch/noarch release [690B]
Fetched 1586B in 0s (6798B/s)
Get:1 http://ftp.altlinux.org p6/branch/x86_64/classic pkglist [12.9MB]
Get:2 http://ftp.altlinux.org p6/branch/x86_64/classic release [135B]
Get:3 http://ftp.altlinux.org p6/branch/noarch/classic pkglist [2650kB]
Get:4 http://ftp.altlinux.org p6/branch/noarch/classic release [135B]
Fetched 15.6MB in 4s (3426kB/s)
Reading Package Lists... Done
Building Dependency Tree... Done

Соответственно, цифру после p совершенно спокойно можно менять. Последнее обновление apt в p6 было достаточно давно:
Цитировать
Current version: 0.5.15lorg2-alt41
Built: about 4 years ago

И в Compact 3.0 работает вариант
Цитировать
rpm ftp://ftp.altlinux.ru/pub/distributions/ALTLinux/ 3.0/i586 classic
rpm ftp://updates.altlinux.ru/ 3.0/i586 updates
« Последнее редактирование: 20.07.2016 00:27:05 от asy »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Про поиск пакета по файлу
« Ответ #189 : 20.07.2016 00:14:20 »
Как странно - пакет так-же называется :-o

:-) Ну так хоть понятно?
Над каждой выборкой команд и истории из терминала, в том числе приведенных Вами выше в посте сижу пытаясь понять и перевести (не английский, а именно смысловую нагрузку) бывает по часу )))   
Поверьте это довольно тяжело )))).

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: поиск по файлу в репозитории
« Ответ #190 : 20.07.2016 00:23:50 »
Убрал возможность обновления индекса, т.к. wget может выкачать совершенно неадекватный индекс в случае, если к индексу не просто что-то добавили, но и удалили какую-то часть (либо модифицировали). wget в подобном случае делает вид, что докачивает, но на самом деле полученный файл с оригиналом в репозитории не совпадает.

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

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 246
  • Учиться .... Телепатами не рождаются, ими ....
    • Email

Оффлайн Olej

  • Давно тут
  • **
  • Сообщений: 201
С этим вариантом должно сработать: https://forum.altlinux.org/index.php?topic=34714.msg291026#msg291026
Можете проверить, если есть возможность и время. Интересен результат...
Ну чего ж не проверить?
Цитировать
- Хочешь большой и чистой любви?
- А кто ж её не хочет?
;-D

P.S. Попробовал: Поиск пакета по фрагменту имени файла
« Последнее редактирование: 20.07.2016 12:38:41 от Olej »

Оффлайн Olej

  • Давно тут
  • **
  • Сообщений: 201
Re: поиск по файлу в репозитории
« Ответ #193 : 20.07.2016 11:59:09 »
Короче говоря, получился тупой скрипт, который не успокоится, пока не выкачает для каждого подходящего uri индекс и не получит тем самым его локальную копию, в которой уже можно grep'ать. Убрал возможность обновления индекса, т.к. wget может выкачать совершенно неадекватный индекс в случае, если к индексу не просто что-то добавили, но и удалили какую-то часть (либо модифицировали). wget в подобном случае делает вид, что докачивает, но на самом деле полученный файл с оригиналом в репозитории не совпадает.
Дальнейшая доработка может свестись к применению rsync (вместо wget), который у меня на альтовом репозитории не работает и который, тем самым, я проверить не могу да не имею на то особого желания. Также, имеет смысл обрабатывать случаи с репозиториями task, когда файл индекса является модифицированной копией индекса основного репозитория и может иметь смысл, прежде чем выкачивать такой индекс, сначала скопировать в директорию имеющийся локальный индекс основного репозитория и уже после это делать синхронизацию на пускай и не полный, но зато содержащий львиную долю информации из индекса репозитория task. В связи с тем, что я писал для wget, я не стал писать подобную обработку ввиду отсутствия в этом смысла.
Теперь всё поехало:
[olej@comp-core-i7-ec8cfa ~]$ findpath lsb_release
Имеются репозитории, для которых отсутствуют локальные копии индексных файлов.
Выполняется загрузка файлов:

--2016-07-20 11:46:15--  http://ftp.altlinux.org/pub/distributions/ALTLinux/p8/branch/x86_64/base/contents_index
Распознаётся ftp.altlinux.org (ftp.altlinux.org)… 62.152.55.238
Подключение к ftp.altlinux.org (ftp.altlinux.org)|62.152.55.238|:80... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа… 200 OK
Длина: 142618023 (136M) [application/octet-stream]
Сохранение в: «/home/olej/.contents_index/http:__ftp.altlinux.org_pub_distributions_ALTLinux_p8_branch_x86_64/contents_index»

contents_index                  100%[=======================================================>] 136,01M  2,58MB/s    in 64s     

2016-07-20 11:47:20 (2,12 MB/s) - «/home/olej/.contents_index/http:__ftp.altlinux.org_pub_distributions_ALTLinux_p8_branch_x86_64/contents_index» сохранён [142618023/142618023]

--2016-07-20 11:47:20--  http://ftp.altlinux.org/pub/distributions/ALTLinux/p8/branch/x86_64-i586/base/contents_index
Распознаётся ftp.altlinux.org (ftp.altlinux.org)… 62.152.55.238
Подключение к ftp.altlinux.org (ftp.altlinux.org)|62.152.55.238|:80... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа… 404 Not Found
2016-07-20 11:47:20 ОШИБКА 404: Not Found.

--2016-07-20 11:47:20--  http://ftp.altlinux.org/pub/distributions/ALTLinux/p8/branch/noarch/base/contents_index
Распознаётся ftp.altlinux.org (ftp.altlinux.org)… 62.152.55.238
Подключение к ftp.altlinux.org (ftp.altlinux.org)|62.152.55.238|:80... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа… 200 OK
Длина: 295646359 (282M) [application/octet-stream]
Сохранение в: «/home/olej/.contents_index/http:__ftp.altlinux.org_pub_distributions_ALTLinux_p8_branch_noarch/contents_index»

contents_index                  100%[=======================================================>] 281,95M  3,14MB/s    in 1m 56s 

2016-07-20 11:49:16 (2,44 MB/s) - «/home/olej/.contents_index/http:__ftp.altlinux.org_pub_distributions_ALTLinux_p8_branch_noarch/contents_index» сохранён [295646359/295646359]

/usr/bin/wget: ключ должен использоваться с аргументом — «P»
Использование: wget [ПАРАМЕТР]... [URL]...

Дополнительные параметры выводятся по команде «wget --help».
Для поиска по индексу будут использованы имеющиеся локальные копии файлов

Поиск по аргументу lsb_release (http:__ftp.altlinux.org_pub_distributions_ALTLinux_p8_branch_x86_64/contents_index):

Поиск по аргументу lsb_release (2/i586/ALTLinux):

Поиск по аргументу lsb_release (2/noarch/ALTLinux):

Поиск по аргументу lsb_release (1/i586/ALTLinux):

Поиск по аргументу lsb_release (1/noarch/ALTLinux):

Поиск по аргументу lsb_release (3/i586/ALTLinux):

Поиск по аргументу lsb_release (3/noarch/ALTLinux):

Поиск по аргументу lsb_release (http:__ftp.altlinux.org_pub_distributions_ALTLinux_p8_branch_noarch/contents_index):
lsb-release
Но непонятно как и что толковать как итог работы?

Оффлайн sb

  • Модератор глобальный
  • *****
  • Сообщений: 8 991
Re: поиск по файлу в репозитории
« Ответ #194 : 20.07.2016 12:22:26 »
Но непонятно как и что толковать как итог работы?
Строчка под
Цитировать
Поиск по аргументу lsb_release (http:__ftp.altlinux.org_pub_distributions_ALTLinux_p8_branch_noarch/contents_index):
и есть результат нахождения пакета в указанном репозитории.
Но вы все же приведите вывод от пользователя apt-repoа то какой-то странный списочный винегрет репозиториев получился в итоге.
PS А, так в arepo тоже индексы отсутствуют, надо будет скрипт поправить на этот счет.
Ну и вы можете предложить формат вывода результата, как вы его видите более понятным с вашей точки зрения. Возможно, это будет учтено в следующей версии.