Есть слака, не имеющая доступа к сети и сеть там даже не поднималась.
Хочу туда накатить обновления.
Как? Первое, что приходит в голову - с локальных репов.
А вот как эту локальную репу посадить сделать - не совсем ясно.
Alien предлагает какой-то скрипт, но уж больно навороченный - RSS там с какого-то боку...
Хочу чего-нибудь попроще - тупо утянуть себе на локалхост wget'ом репу под свою архитектуру.
Вопрос - что именно тянуть (помимо самих пакетов).
В Deb под это дело был свой штатный инструмент. В слаке я такого не обнаружил.
И официальных инструкций, FAQ'ов, статей тоже не нашёл.
В слакбуке об этом ни слова.
Ежели всё-таки где-то есть - ткните носом.
Ну или поделитесь опытом.
Как сделать локальный репозитарий? (чтобы обновить систему без доступа к сети)
Модератор: Модераторы разделов
- Hephaestus
- Сообщения: 3729
- Статус: Многоуважаемый джинн...
- ОС: Slackware64-14.1/14.2
- Контактная информация:
Re: Как сделать локальный репозитарий?
Да чего там тянуть? Одна команда: $ wget -nH --mirror --cut-dirs=2 ftp://slackware.osuosl.org/pub/slackware/slackware{,64}-{14.1,current}.
Спасибо сказали:
Re: Как сделать локальный репозитарий?
Hephaestus
обновления безопасности или обновить версию?
Обновления безопасности на зеркалах в каталоге версии, например, slackware-14.1/patches/packages/, забираете содержимое, переходите в каталог с загруженными пакетами, выполняете
Обрабатываете файлы .new, руками или при помощи
Если на новую версию, то забираете дерево /slackware*, читаете UPGRADE.TXT, выполняете описанное там.
обновления безопасности или обновить версию?
Обновления безопасности на зеркалах в каталоге версии, например, slackware-14.1/patches/packages/, забираете содержимое, переходите в каталог с загруженными пакетами, выполняете
Код: Выделить всё
# upgradepkg *.t?z
Обрабатываете файлы .new, руками или при помощи
Код: Выделить всё
# slackpkg new-config
Если на новую версию, то забираете дерево /slackware*, читаете UPGRADE.TXT, выполняете описанное там.
- Hephaestus
- Сообщения: 3729
- Статус: Многоуважаемый джинн...
- ОС: Slackware64-14.1/14.2
- Контактная информация:
Re: Как сделать локальный репозитарий?
Хороший вопрос.
Вот когда я делаю slackpkg update; slackpkg upgrade-all это что происходит? Обновления безопасности? Или туда ещё что-то попадает?
Насколько я видел, ставятся новые версии пакетов.
Или вот, например, с момента установки слаки поменялась схема перевода часов. Это к какой категории относится?
На десктопе это обновилось, на ноуте, естественно, нет.
Re: Как сделать локальный репозитарий?
Так обновляются все установленные пакеты. Это и обновление, и обновление безопасности:
+--------------------------+
Wed Jan 28 19:23:00 UTC 2015
patches/packages/glibc-2.17-x86_64-10_slack14.1.txz: Rebuilt.
This update patches a security issue __nss_hostname_digits_dots() function
of glibc which may be triggered through the gethostbyname*() set of
functions. This flaw could allow local or remote attackers to take control
of a machine running a vulnerable version of glibc. Thanks to Qualys for
discovering this issue (also known as the GHOST vulnerability.)
For more information, see:
https://www.qualys.com/research/security-ad...E-2015-0235.txt
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-0235
(* Security fix *)
patches/packages/glibc-i18n-2.17-x86_64-10_slack14.1.txz: Rebuilt.
patches/packages/glibc-profile-2.17-x86_64-10_slack14.1.txz: Rebuilt.
patches/packages/glibc-solibs-2.17-x86_64-10_slack14.1.txz: Rebuilt.
patches/packages/glibc-zoneinfo-2014j-noarch-1.txz: Upgraded.
Upgraded to tzcode2014j and tzdata2014j.
Re: Как сделать локальный репозитарий?
Позволю себе попытаться устранить некоторую двусмысленность этого утверждения.
По upgrade-all строится список имеющихся в системе пакетов, сравнивается со списком пакетов в основном дереве (полученном при последнем update); для пакетов с отличающимися версиями загружаются с зеркала и устанавливаются пакеты-обновления.
1. После "номерного" выпуска версии, любые изменения в уже однажды выпущенном дереве дистрибутива приходят только в /patches/{packages,source}.
slackpkg update; slackpkg upgrade-all
проверяет все дерево, но для номерного выпуска по указанной выше причине будет забирать только обновления из /patches, ибо других не выпускают. В свою очередь, в /patches попадают только обновления безопасности и исправление наиболее "доставучих" ошибок.
2. В -current публикация пакетов ведется в основном дереве, /patches перманентно пуст (будет наполняться только в следующем номерном выпуске). Для обновления -current необходимо использовать
slackpkg update; slackpkg install-new; slackpkg upgrade-all; slackpkg clean-system
поскольку, как уже было сказано выше, upgrade-all обновит только уже установленные пакеты, а вот новые для будущего выпуска не поставит. А в них могут быть необходимые библиотеки и т.п. upgrade-all также не удалит убранные из -current пакеты (признанные ненужными, разделенные на другие и т.п.)
Re: Как сделать локальный репозитарий?
Если быть точным, ставится другая версия пакета (по man -- the most recent official version of the specified package(s)). То есть,
1) если для установленного пакета есть другая версия в /patches, ставим ее,
иначе 2) если для установленного пакета есть другая версия в /slackware*/*/, ставим ее,
иначе 3) обновлений для пакета нет.
Это относится к информации о временнЫх зонах, которая ставится из пакета glibc-zoneinfo. А пакет собирают из информации, публикуемой на http://www.iana.org/time-zones, ftp://ftp.iana.org/tz/, rsync://rsync.iana.org/tz/. Поэтому никто не запрещает:Hephaestus писал(а): ↑22.04.2015 13:24с момента установки слаки поменялась схема перевода часов. Это к какой категории относится?
1) обновить информацию руками, см. http://www.slackware.ru/wiki/Обновление_часовых_поясов
2) забрать слакбилд glibc-zoneinfo, файлы зон с IANA, пересобрать и поставить пакет (его послеустановочный сценарий выполнит работу по обновлению текущей зоны)
3) ждать у моря погоды :-)
- Hephaestus
- Сообщения: 3729
- Статус: Многоуважаемый джинн...
- ОС: Slackware64-14.1/14.2
- Контактная информация:
Re: Как сделать локальный репозитарий?
Как я понимаю, slackware<arch>-<version> целиком можно не забирать, а забрать только slackware и patches, так?bormant писал(а): ↑22.04.2015 16:41Если быть точным, ставится другая версия пакета (по man -- the most recent official version of the specified package(s)). То есть,
1) если для установленного пакета есть другая версия в /patches, ставим ее,
иначе 2) если для установленного пакета есть другая версия в /slackware*/*/, ставим ее,
иначе 3) обновлений для пакета нет.
Зачем разруливать это руками, брать слакбилды, а тем более ждать у моря погоды, если glibc-zoneinfo вполне себе присутствует в patches?bormant писал(а): ↑22.04.2015 16:41Это относится к информации о временнЫх зонах, которая ставится из пакета glibc-zoneinfo. А пакет собирают из информации, публикуемой на http://www.iana.org/time-zones, ftp://ftp.iana.org/tz/, rsync://rsync.iana.org/tz/. Поэтому никто не запрещает:
1) обновить информацию руками, см. http://www.slackware.ru/wiki/Обновление_часовых_поясов
2) забрать слакбилд glibc-zoneinfo, файлы зон с IANA, пересобрать и поставить пакет (его послеустановочный сценарий выполнит работу по обновлению текущей зоны)
3) ждать у моря погоды :-)
У меня на десктопе это обновилось в результате slackpkg update; slackpkg upgrade-all вместе с кучей всякой всячины. И я хочу то же самое проделать на ноутбуке. Почему бы нет?
Re: Как сделать локальный репозитарий?
Во-первых, часто между нормативным изменением времени (и обновлением tzdata на серверах IANA) и обновлением пакета может пройти какое-то, иногда существенное, время. Прикажете жить с кривым часовым поясом?Hephaestus писал(а): ↑22.04.2015 22:20Зачем разруливать это руками, брать слакбилды, а тем более ждать у моря погоды, если glibc-zoneinfo вполне себе присутствует в patches?
Во-вторых, некоторые вещи нужно знать и уметь применять самостоятельно, управление временем из их числа.
Сказанное выше -- это про другую ситуацию... Когда уж полночь близится, а Германа все нет... (q)
Для номерной версии достаточно /patches/packages/.Hephaestus писал(а): ↑22.04.2015 22:20Как я понимаю, slackware<arch>-<version> целиком можно не забирать, а забрать только slackware и patches, так?