Differences between revisions 6 and 7
Revision 6 as of 2008-08-08 01:46:14
Size: 10339
Editor: eSyr
Comment:
Revision 7 as of 2008-08-13 20:21:30
Size: 13939
Editor: PavelSutyrin
Comment: еще кусок
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
## ~00:10:00 of 080722.ogg
Допустим, есть машина (назовём ее сервер), которая содержит DVD-привод, есть один или несколько DVD-дисков, на которых комплект ПСПО, или дистрибутив Мастер или Терминал, или школьный branch так называемый, или ветка 4.0, вобщем, какой-то набор пакетов, адекватных данному дистрибутиву (если они не адекватны ему, то вряд ли стоит организовывать из них репозиторий). На этот сервер мы переписали содержимое всех привезённых DVD-дисков, и дальше хотим пользоваться всем этим как хранилищем.
Line 3: Line 5:
## ~00:10:00 of 080722

Допустим, есть машина (назовём ее сервер), которая содержит DVD-привод, есть один или несколько DVD-дисков, на которых
комплект ПСПО, или дистрибутив Мастер или Терминал, или школьный branch так
называемый, или ветка 4.0, вобщем, какой-то набор пакетов, адекватных данному дистрибутиву (если они не адекватны ему, то вряд ли стоит организовывать из них
репозиторий). На этот сервер мы переписали содержимое всех привезённых
DVD-дисков, и дальше хотим пользоваться всем этим как хранилищем.

 * Зарегистрировать DVD-диск как таковой как носитель с хранилищем. Если на
 машине нет DVD-привода — не годится.
 * Раскомментировать настройки {{{/etc/apt/sources.list.d/}}} и ходить за пакетами только в Интернет. Интернета может не быть, он может быть медленный и стоить денег.
 * Зарегистрировать DVD-диск как таковой как носитель с хранилищем. Если на машине нет DVD-привода — не годится.
 * Раскомментировать настройки {{{/etc/apt/sources.list.d/}}} и ходить за пакетами только в Интернет. Интернета может не быть, он может быть медленный и стоить денег.
Line 16: Line 9:
Итак, попробуем переписанные на жесткий диск пакеты предоставить всем
местным компьютерам как хранилище. Кстати, можно смонтировать даже не устройство, а
файл с образом. Например, нет DVD-привода, а есть переносной USB-винчестер с
образом интересующего нас DVD-диска.
Кстати, каталог {{{/media}}} предназначен для автоматического размещения точек
монтирования, а {{{/mnt}}} — для ручного их размещения. Смонтируем: 
Итак, попробуем переписанные на жесткий диск пакеты предоставить всем местным компьютерам как хранилище. Кстати, можно смонтировать даже не устройство, а файл с образом. Например, нет DVD-привода, а есть переносной USB-винчестер с образом интересующего нас DVD-диска.  Кстати, каталог {{{/media}}} предназначен для автоматического размещения точек монтирования, а {{{/mnt}}} — для ручного их размещения. Смонтируем:
Line 26: Line 14:
Эффект тот же, если бы мы смонтировали этот диск из DVD-привода. Команда {{{mount}}} сама определила тип файловой системы ({{{iso9660}}}), а можно было указать ключик {{{-t iso9660}}}, получилось бы точно также.
Line 27: Line 16:
Эффект тот же, если бы мы смонтировали этот диск из DVD-привода.
Команда {{{mount}}} сама определила тип файловой системы ({{{iso9660}}}), а можно было
указать ключик {{{-t iso9660}}}, получилось бы точно также.

Что есть на диске?..
Что есть на диске?..
Line 47: Line 32:
Там не так уж много. Каталог {{{ALTLinux/}}} — хранилище
пакетов, каталог с документацией — текстовые файлы с лицензией, на тот
случае, если диск вставлен в компьютер с Windows, кое-что можно почитать.
{{{isolinux/}}} содержит
загружаемые файлы, чтобы организовать загрузку с CD/DVD, это часть пакета
{{{syslinux}}}, который умеет загружаться со всего, что шевелится.
Самый большой файл — это {{{altinst}}}.
Он тоже является файловой системой, его тоже можно подмонтировать, внутри
него находится файловая система с установщиком. Зачем так сделано?..
Во-первых, она упакована и занимает меньше места, во-вторых, файловая система
{{{iso9660}}} обладает рядом ограничений на имена файлов, которых в linux нет
(кстати, в именах файлов в linux могут быть любые символы, кроме {{{/}}},
который является разделителем каталогов, и символа с кодом 0), не сохраняет
в нужной мере права доступа к файлам (в том числе setuid и т.п.)
Там не так уж много. Каталог {{{ALTLinux/}}} — хранилище пакетов, каталог с документацией — текстовые файлы с лицензией, на тот случае, если диск вставлен в компьютер с Windows, кое-что можно почитать.  {{{isolinux/}}} содержит загружаемые файлы, чтобы организовать загрузку с CD/DVD, это часть пакета {{{syslinux}}}, который умеет загружаться со всего, что шевелится.  Самый большой файл — это {{{altinst}}}.  Он тоже является файловой системой, его тоже можно подмонтировать, внутри него находится файловая система с установщиком. Зачем так сделано?.. Во-первых, она упакована и занимает меньше места, во-вторых, файловая система {{{iso9660}}} обладает рядом ограничений на имена файлов, которых в linux нет (кстати, в именах файлов в linux могут быть любые символы, кроме {{{/}}}, который является разделителем каталогов, и символа с кодом 0), не сохраняет в нужной мере права доступа к файлам (в том числе setuid и т.п.)
Line 62: Line 34:
Придумаем, каким способом будем раздавать этот диск? По ftp. Придумаем, каким способом будем раздавать этот диск? По ftp. (допустим, подняли ftp-сервер,
Line 64: Line 36:
## 00:26:40 (pause)  . скопировали на него все с диска). Теперь предстоит настроить клиентские места на обновление с этого сервера,
Line 66: Line 38:
В системе есть условно два места --- sources.list.d, где лежат уже готовые файлы, а другое --- sources.list, который является блее правильным местм для вписывания чего угодно. Туда пишем: а также немножко докрутить сам репозиторий (после создания копии репозитория полезно на ней сделать {{{genbasedir}}})

В системе есть условно говоря, два места, где указаны хранилища, которые вы используете, это — каталог {{{sources.list.d}}}, где лежат уже готовые файлы, которые туда подкладываются (и тогда используются в настройках), откладываются (и тогда не используются), а другое — просто файл sources.list, куда можно писать что угодно. В Debian'е такая policy: при установке пакет не может редактировать чужие конфиг-файлы, это закон. Что делать, если нужно модифицировать sources.list?.. Ответ: давить на мейнтейнера apt, чтобы тот предусмотрел, чтобы apt читала, во-первых sources.list, а во-вторых, все файлы из каталога sources.list.d, и каждый пакет может спокойно положить туда свой файл, ничего более не модифицируя.

Что угодно можно писать и в первое место, но сюда — лучше. Туда пишем:
Line 68: Line 45:
#тип_пакетов [электронная_подпись] адрес название_хранилища разделы_хранилища
Line 70: Line 48:
{{{ALTLinux}}} — имя репозитория. Дальше два раздела {{{disk}}}, {{{base}}}. Почему {{{disk}}} и {{{base}}}? Это ведь настройка установщика, а у него есть две стадии работы — где ставится базовая система (base) и дополнительные пакеты, которые вы выбираете при установке (disk).
Line 71: Line 50:
Почему disk и base? Это дже устанвщик, у нег есть две стадия --- базовая система (base) и всякие дополнительные пакеты (disk). Сохраним конфиг, сделаем
Line 73: Line 52:
Мы сейчас по-тупому скопирвали реп. с диска, а, вобще говоря. мы могли нарушить его структуру. Давайте его пересодерём. Для этого надо установить пакет apt-utils, и сказать genbasedir --topdir=/var/ftp/pub/ ALTLinux base disk --progress {{{
$apt-get update
}}}
Видно, что он пытается его прочитать, но не находит подписи (signatures).
Line 75: Line 57:
После этой небыстрой операции поробуем ещё раз: failed to open file. Это было из-за того, что мы делали хардлинки, и genbasedir ругался на то, чт количеств хардлинков больше одного. Мы сейчас по-тупому скопировали репозиторий как набор файлов с диска, а, вообще говоря, мы могли нарушить его структуру. Давайте его пересоберём, этот репозиторий. Для этого надо установить пакет {{{apt-utils}}}, и сказать
Line 77: Line 59:
В итоге, можно свалить кучу пакетв, genbasedir генерирует ктаалог base, и всё рабтает. {{{
$genbasedir --topdir=/var/ftp/pub/ ALTLinux base disk --progress
}}}
После этой небыстрой операции попробуем ещё раз {{{apt-get update}}}: {{{"failed to open file"}}}. Это было из-за того, что мы из экономии места на диске при копировании файлов делали хардлинки, и genbasedir ругался на то,что количество хардлинков больше одного (т.е., он-то сейчас файл проверит, а вдруг его потом кто-то изменит, пользуясь другим именем?) (Удалили каталог {{{base}}}, затем {{{genbasedir}}} все получилось). Это у нас был недостаточно спланированный экспромт ;)
Line 79: Line 64:
Названия репозитриев --- прсто имена каталогов, а названия разделов в неск. местах используются: ... . В больш. случаев репоз. на сервере устроен так, что там тлько одна ветка. Итак, вы ставите FTP-сервер, подкладываете ему содержимое нашего DVD-диска, и даже любые другие пакеты, все это можно сложить в кучу, на неё натравить {{{genbasedir}}}, которые генерирует правильный каталог с индексами {{{base}}}, и на клиентской машине это хранилище стало доступно. Значит, на всех клиентских машинах этот сервер можно объявить в качестве хранилища и вуаля: каким бы способом вы ни ставили ПО на клиентские машины, обновляться и делать многое другое можно не из интернета, а с этого самого сервера.
Line 81: Line 66:
Между прчим, тема закрыта. Названия репозиториев --- просто имена каталогов. Название репозитория ({{{ALTLinux}}}) — это просто название каталога, в котором формируется соответствующее дерево, а имена разделов упоминаются в нескольких местах структуры хранилища.
Line 83: Line 68:
В большинстве случаев, дистрибутив на сервере устроен в виде набора репозиториев с одной веткой в каждом.

## 00:57:16 (дальше в 080722 -- сетевая загрузка, развертывание класса). (pause)
Line 85: Line 73:
Line 92: Line 79:
После этого необх скахать genbase dir. Тут три параметра: месторасп. хранилища, название и его разделы. Зачем так (в идеале) --- если речь идёт о дистр. на неск. архитектур в одном и том е зранилище будут потребны неск. разделов, но не все сразу. В noarch содержатся пакеты, не завис. от арзитектуры. Именно поэтому есть такое двойное эшелонирвание. После этого необх скахать genbase dir. Тут три параметра: месторасп. хранилища, название и его разделы. Зачем так (в идеале) если речь идёт о дистр. на неск. архитектур в одном и том е зранилище будут потребны неск. разделов, но не все сразу. В noarch содержатся пакеты, не завис. от арзитектуры. Именно поэтому есть такое двойное эшелонирвание.
Line 94: Line 81:
Теперь на клиентских машинах надо настрить, чтобы испльзовалось новосозданное локальное хранилище: /etc/apt/sources.list, после чего apt-get update.  Теперь на клиентских машинах надо настрить, чтобы испльзовалось новосозданное локальное хранилище: /etc/apt/sources.list, после чего apt-get update.
Line 101: Line 88:
|| Готовность (%) || Продолжительность (ак. ч.) || Подготовка (календ. ч.) || Полный текст (раб. д.) || Предварительные знания || Level || Maintainer                                       || Start date || End date ||
|| 8 || 1 || 1 || 1 || || 1 || PavelSutyrin, DmitryChistikov, VsevolodKrishchenko ||            || ||
|| Готовность (%) || Продолжительность (ак. ч.) || Подготовка (календ. ч.) || Полный текст (раб. д.) || Предварительные знания || Level || Maintainer || Start date || End date ||
||15 || 1 || 1 || 1 || || 1 || PavelSutyrin, DmitryChistikov, VsevolodKrishchenko || || ||

Line 104: Line 93:
CategoryLectures CategoryPspo CategoryMpgu CategoryUneex  CategoryLectures CategoryPspo CategoryMpgu CategoryUneex

Организация локального репозитория

Допустим, есть машина (назовём ее сервер), которая содержит DVD-привод, есть один или несколько DVD-дисков, на которых комплект ПСПО, или дистрибутив Мастер или Терминал, или школьный branch так называемый, или ветка 4.0, вобщем, какой-то набор пакетов, адекватных данному дистрибутиву (если они не адекватны ему, то вряд ли стоит организовывать из них репозиторий). На этот сервер мы переписали содержимое всех привезённых DVD-дисков, и дальше хотим пользоваться всем этим как хранилищем.

  • Зарегистрировать DVD-диск как таковой как носитель с хранилищем. Если на машине нет DVD-привода — не годится.
  • Раскомментировать настройки /etc/apt/sources.list.d/ и ходить за пакетами только в Интернет. Интернета может не быть, он может быть медленный и стоить денег.

  • Если все диски переписаны на сервер и есть небыстрый, но, скажем, бесплатный интернет, по нему можно их потом обновлять, это немного (если не обновляется OpenOffice). Можно то или иное исключить из обновления, чтобы не качать лишнего.

Итак, попробуем переписанные на жесткий диск пакеты предоставить всем местным компьютерам как хранилище. Кстати, можно смонтировать даже не устройство, а файл с образом. Например, нет DVD-привода, а есть переносной USB-винчестер с образом интересующего нас DVD-диска. Кстати, каталог /media предназначен для автоматического размещения точек монтирования, а /mnt — для ручного их размещения. Смонтируем:

$mount -o loop disk_image.iso /mnt/iso

Эффект тот же, если бы мы смонтировали этот диск из DVD-привода. Команда mount сама определила тип файловой системы (iso9660), а можно было указать ключик -t iso9660, получилось бы точно также.

Что есть на диске?..

$ls -lh /mnt/iso
 total 132M
-r--r--r--  1 root root  56M 2008-06-28 18:29 altinst
dr-xr-xr-x  5 root root 2,0K 2008-06-28 18:31 ALTLinux
dr-xr-xr-x 14 root root 4,0K 2008-06-28 18:31 Documentation
dr-xr-xr-x  3 root root 6,0K 2008-06-28 18:31 isolinux
-r--r--r--  1 root root 8,3K 2008-06-18 15:24 license.ru.txt
-r--r--r--  1 root root 3,7K 2008-06-18 15:24 license.txt
dr-xr-xr-x  2 root root 2,0K 2008-06-28 18:31 Metadata
-r--r--r--  1 root root  25M 2008-06-28 18:28 netinst
-r--r--r--  1 root root  52M 2008-06-28 18:27 rescue
-r--r--r--  1 root root 205K 2008-06-18 15:24 RPM-GPG-KEY

Там не так уж много. Каталог ALTLinux/ — хранилище пакетов, каталог с документацией — текстовые файлы с лицензией, на тот случае, если диск вставлен в компьютер с Windows, кое-что можно почитать. isolinux/ содержит загружаемые файлы, чтобы организовать загрузку с CD/DVD, это часть пакета syslinux, который умеет загружаться со всего, что шевелится. Самый большой файл — это altinst. Он тоже является файловой системой, его тоже можно подмонтировать, внутри него находится файловая система с установщиком. Зачем так сделано?.. Во-первых, она упакована и занимает меньше места, во-вторых, файловая система iso9660 обладает рядом ограничений на имена файлов, которых в linux нет (кстати, в именах файлов в linux могут быть любые символы, кроме /, который является разделителем каталогов, и символа с кодом 0), не сохраняет в нужной мере права доступа к файлам (в том числе setuid и т.п.)

Придумаем, каким способом будем раздавать этот диск? По ftp. (допустим, подняли ftp-сервер,

  • скопировали на него все с диска). Теперь предстоит настроить клиентские места на обновление с этого сервера,

а также немножко докрутить сам репозиторий (после создания копии репозитория полезно на ней сделать genbasedir)

В системе есть условно говоря, два места, где указаны хранилища, которые вы используете, это — каталог sources.list.d, где лежат уже готовые файлы, которые туда подкладываются (и тогда используются в настройках), откладываются (и тогда не используются), а другое — просто файл sources.list, куда можно писать что угодно. В Debian'е такая policy: при установке пакет не может редактировать чужие конфиг-файлы, это закон. Что делать, если нужно модифицировать sources.list?.. Ответ: давить на мейнтейнера apt, чтобы тот предусмотрел, чтобы apt читала, во-первых sources.list, а во-вторых, все файлы из каталога sources.list.d, и каждый пакет может спокойно положить туда свой файл, ничего более не модифицируя.

Что угодно можно писать и в первое место, но сюда — лучше. Туда пишем:

#тип_пакетов [электронная_подпись] адрес название_хранилища разделы_хранилища
rpm ftp://10.30.5.1/pub ALTLinux disk base

ALTLinux — имя репозитория. Дальше два раздела disk, base. Почему disk и base? Это ведь настройка установщика, а у него есть две стадии работы — где ставится базовая система (base) и дополнительные пакеты, которые вы выбираете при установке (disk).

Сохраним конфиг, сделаем

$apt-get update

Видно, что он пытается его прочитать, но не находит подписи (signatures).

Мы сейчас по-тупому скопировали репозиторий как набор файлов с диска, а, вообще говоря, мы могли нарушить его структуру. Давайте его пересоберём, этот репозиторий. Для этого надо установить пакет apt-utils, и сказать

$genbasedir --topdir=/var/ftp/pub/ ALTLinux base disk --progress

После этой небыстрой операции попробуем ещё раз apt-get update: "failed to open file". Это было из-за того, что мы из экономии места на диске при копировании файлов делали хардлинки, и genbasedir ругался на то,что количество хардлинков больше одного (т.е., он-то сейчас файл проверит, а вдруг его потом кто-то изменит, пользуясь другим именем?) (Удалили каталог base, затем genbasedir все получилось). Это у нас был недостаточно спланированный экспромт ;)

Итак, вы ставите FTP-сервер, подкладываете ему содержимое нашего DVD-диска, и даже любые другие пакеты, все это можно сложить в кучу, на неё натравить genbasedir, которые генерирует правильный каталог с индексами base, и на клиентской машине это хранилище стало доступно. Значит, на всех клиентских машинах этот сервер можно объявить в качестве хранилища и вуаля: каким бы способом вы ни ставили ПО на клиентские машины, обновляться и делать многое другое можно не из интернета, а с этого самого сервера.

Названия репозиториев --- просто имена каталогов. Название репозитория (ALTLinux) — это просто название каталога, в котором формируется соответствующее дерево, а имена разделов упоминаются в нескольких местах структуры хранилища.

В большинстве случаев, дистрибутив на сервере устроен в виде набора репозиториев с одной веткой в каждом.

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

В ПСПО при запущенной граф. оболочке все монтируется автоматом. При всовывании сдюка в дисковод оно открылсь. На самом деле оно там pmount, кидает вверх по дбусу сообщение об этом, если ктл-то его ловит, то он может, например, откр. файловый броузер.

Теперь надо из под рута скопировать содержимое исх. носителя в /var/ftp

После этого необх скахать genbase dir. Тут три параметра: месторасп. хранилища, название и его разделы. Зачем так (в идеале) — если речь идёт о дистр. на неск. архитектур в одном и том е зранилище будут потребны неск. разделов, но не все сразу. В noarch содержатся пакеты, не завис. от арзитектуры. Именно поэтому есть такое двойное эшелонирвание.

Теперь на клиентских машинах надо настрить, чтобы испльзовалось новосозданное локальное хранилище: /etc/apt/sources.list, после чего apt-get update.


Сведения о ресурсах

Готовность (%)

Продолжительность (ак. ч.)

Подготовка (календ. ч.)

Полный текст (раб. д.)

Предварительные знания

Level

Maintainer

Start date

End date

15

1

1

1

1

PavelSutyrin, DmitryChistikov, VsevolodKrishchenko


PspoClasses/080722/01LocalRepository (last edited 2008-10-18 11:04:56 by DmitryChistikov)