Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: [HOWTO] Различные способы создания локального репозитория  (Прочитано 75416 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн VolCh

  • Активист
  • *
  • Сообщений: 543
    • Просмотр профиля
Re: Создание локального репозитория
« Ответ #15 : 14 Марта 2008, 10:13:04 »
Или просто инет отрубить :) Тогда будет довольствоваться тем, что есть

Оффлайн Stomp

  • Активист
  • *
  • Сообщений: 343
    • Просмотр профиля
Re: Создание локального репозитория
« Ответ #16 : 14 Марта 2008, 10:35:43 »
а вот такая штука, в локальном кеше /var/cache/apt/archives у каждого пакета по нескольку версий, тех же вайнов у меня щас там лежит 3


ls -l wine*
-rw-r--r-- 1 root root 35708756 2008-02-14 05:03 wine_0.9.55-0ubuntu1_i386.deb
-rw-r--r-- 1 root root 11435342 2008-03-05 21:03 wine_0.9.56-0ubuntu1_i386.deb
-rw-r--r-- 1 root root 11494294 2008-03-10 19:04 wine_0.9.57-0ubuntu1_i386.deb



а как отделить новые версии от старых и удалить все старые, ведь тогда общий объем кеша будет на порядок меньше?

Оффлайн VolCh

  • Активист
  • *
  • Сообщений: 543
    • Просмотр профиля
Re: Создание локального репозитория
« Ответ #17 : 14 Марта 2008, 10:43:00 »
Если кому интересно - точно на форуме темку про это видел - ищите - просто лень самому искать, чтобы ссылку дать на пост - спешу.
Нашел :) https://forum.ubuntu.ru/index.php?topic=8073.0

Оффлайн KriK

  • Любитель
  • *
  • Сообщений: 74
    • Просмотр профиля
Re: Создание локального репозитория
« Ответ #18 : 16 Марта 2008, 21:00:01 »
а как отделить новые версии от старых и удалить все старые, ведь тогда общий объем кеша будет на порядок меньше?
Кто-то писал скрипты уже. Стыдно, но уже не помню кто. Вот скрипт, который старые версии от новых отделяет:
krik@krik-desktop:~$ cat debs-scripts/move_older.sh
#!/bin/sh
echo "If unshure press ctrl+C !!!!!!!!!!!!!           "
rm -i ./new/*
rmdir ./new
mkdir new
less  ./dists/gutsy/main/binary-i386/Packages.gz | grep "Filename: " | awk '$1 $2 {print $2}' >./newfiles
new_files=$(more ./newfiles)

for n in $new_files ; do
    mv $n ./new
    #echo $n
done

mv ./debs/*.tar.* ./tgz/
mv ./debs/*.tgz ./tgz/

myadata=$(date +%d-%m-%y_%R)
#mkdir ./old_$myadata
mv ./debs ./old_$myadata
mv ./new ./debs
rm ./newfiles
Думаю сможешь сам разобраться.

Оффлайн Stiff

  • Активист
  • *
  • Сообщений: 677
    • Просмотр профиля
Re: Создание локального репозитория
« Ответ #19 : 26 Марта 2008, 12:48:42 »
ситуация: есть 3 компа с (к)Ubuntu 7.10 (2 серверных и 1 десктопная), у каждой в /var/apr/cache/packages куча deb-пакетов. Есть задача записать пакеты со всех машин на DVD, но чтоб этот диск стал локальным репозиторием для ещё одного компьютера с Ubuntu 7.10, на нем нету интернета.
В принципе как можно сделать понятно, только не знаю откуда в этом случае брать файл packages?
может есть программа, которая это дело автоматизирует?

Оффлайн Kolyok

  • Активист
  • *
  • Сообщений: 484
    • Просмотр профиля
Re: Создание локального репозитория
« Ответ #20 : 26 Марта 2008, 14:28:10 »
Цитировать
В принципе как можно сделать понятно, только не знаю откуда в этом случае брать файл packages?
Копируешь все пакеты в одну папку (например, ~/rep)
Переходишь в эту папку
cd ~/repДаешь команду на сканирование пакетов:
sudo dpkg-scanpackages . /dev/null | gzip > Packages.gzЖдешь, когда отработает и создаст файл Packages.gz
Копируешь данную папку, куда тебе надо, например, на флэшку очень удобно.
На машине, где хочешь подключить локальный репозиторий, комментируешь все репозитории в /etc/apt/sources.list и вписываешь свой (например, /media/disk/rep ./)
Если машине к интернету не подключена (или, как я говорил выше, остальные репозитории закомментированы, то пакеты потянет именно с твоего локального репозитория.
« Последнее редактирование: 26 Марта 2008, 14:30:10 от Kolyok »
Суета... Все суета... Суета сует... Что пользы человеку от трудов его...
Умножая знания, умножаете скорбь Вашу...

Оффлайн Stiff

  • Активист
  • *
  • Сообщений: 677
    • Просмотр профиля
Re: Создание локального репозитория
« Ответ #21 : 27 Марта 2008, 14:54:13 »
Спасибо за совет  :)
Как я понял, если в папке есть несколько версий одного и того же пакета, он выберет тот, что новее? или первый попавшийся?
можно ли осуществить автоматическое удаление пакетов старых версий?

Оффлайн Sirx

  • Участник
  • *
  • Сообщений: 189
    • Просмотр профиля
Re: Создание локального репозитория
« Ответ #22 : 27 Марта 2008, 16:10:10 »
Цитировать
В принципе как можно сделать понятно, только не знаю откуда в этом случае брать файл packages?
Даешь команду на сканирование пакетов:
sudo dpkg-scanpackages . /dev/null | gzip > Packages.gz
Уточнение - это требует предварительной установки пакета dpkg-dev если мне не изменяет память :)
_________________
Я живу не для того, чтобы соответствовать вашим ожиданиям.

Оффлайн Kolyok

  • Активист
  • *
  • Сообщений: 484
    • Просмотр профиля
Re: Создание локального репозитория
« Ответ #23 : 28 Марта 2008, 13:11:26 »
Цитировать
Как я понял, если в папке есть несколько версий одного и того же пакета, он выберет тот, что новее? или первый попавшийся?
Во время работы смотри вывод консоли. Там будут сообщения о том, какие файлы игнорируются в связи с наличием более новой версии.
Цитировать
можно ли осуществить автоматическое удаление пакетов старых версий?
Можно. Где-то видел - товарищ даже скрипт для этого написал и использовал. Вроде бы на http://linuxforum.ru/ - поищи, там есть готовое решение.
Суета... Все суета... Суета сует... Что пользы человеку от трудов его...
Умножая знания, умножаете скорбь Вашу...

Оффлайн begemot

  • Активист
  • *
  • Сообщений: 385
  • Я отказался от наркотического яда - никотина!
    • Просмотр профиля
Re: Создание локального репозитория
« Ответ #24 : 01 Мая 2008, 02:44:29 »
Я не гуру, но, скопировав с дистрибутивного DVD каталоги pool и dists в /apt-pool и указав в sources.list следующее: "deb file:/apt-pool hardy main restricted", я получил отлично работающий локальный репозиторий.
Что я делаю не так?

Оффлайн Nebulosa

  • Активист
  • *
  • Сообщений: 397
    • Просмотр профиля
Re: Создание локального репозитория
« Ответ #25 : 01 Мая 2008, 06:39:50 »
Кто-то писал скрипты уже. Стыдно, но уже не помню кто. Вот скрипт, который старые версии от новых отделяет:
Простите, но зачем изобретать колесо?..
  apt-get autoclean
ну хотя бы здесь написано...

Оффлайн LAlex

  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: Создание локального репозитория
« Ответ #26 : 31 Мая 2008, 16:21:11 »
Новмчек в областе свободного ПО. Сделал так по первому способу. Вообщем создал каталок в /etc/ вита LocalRepo.
Переместил туда все пакеты которые были в /var/cache/apt/archives. Пакетов оказалось около 300mb. Надо ли разархивировать пакеты перед началом команд apt-ftparchive? НУ я оставил все как есть.  Скопировал файл sources.list и в оригинальном закоментировал все строки. Оставил эти:
deb file:/etc/LocalRepo /.
Зачем нужно "./" ??? ?
Потом перешел в каталог с пакетами и выполнил следущее
ftparchive /etc/LocalRepo | gzip > /etc/LocalRepo/Packages.gz
Немного подождав файл сгенерировался я запустил
Цитировать
#sudo apt-get update
Автор статьи говорит типа надо apt-get install??? ? Тоже не пойму
Потом консоль вывела
Цитировать
Ign file: ./ Release.gpg
Ign file: ./ Translation-en_US
Ign file: ./ Release
Ign file: ./ Packages
Reading package lists... Done
Чето там проигнорировалось вроде...
Потом выбрал
#sudo apt-get update
И результат вырезан!
Цитировать
Failed to fetch file:/etc/LocalRepo//etc/LocalRepo/python-virtkey_0.50ubuntu0.1_i386.deb  File not found
Failed to fetch file:/etc/LocalRepo//etc/LocalRepo/ssh-askpass-gnome_1%3a4.7p1-8ubuntu1.2_i386.deb  File not found
Failed to fetch file:/etc/LocalRepo//etc/LocalRepo/transmission-gtk_1.06-0ubuntu5_i386.deb  File not found
Что это за пути такие?  file:/etc/LocalRepo//etc/LocalRepo/s я такого не указывал... Что я не то делаю? :(


Оффлайн LAlex

  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: Создание локального репозитория
« Ответ #27 : 01 Июня 2008, 20:32:43 »
Вообщем пошигово по инструкции этого автора так и ничего не удалось сделать...
Но вот мой способ. Он пошагово точно работает.
Делаем так:
1) создаем каталок допустим в /etc/
#sudo mkdir /etc/LocalRepo
Заходим создаем папку для бинарников
#cd LocalRepo
#sudo mkdir binary

2) Допустим у нас в кеше лежат обычные пакеты. Они запакованы gzip.
Залезаем в каталог с пакетами. Копируем их в заранее созданный каталок /etc/LocalRepo/OriginDeb
#sudo mkdir /etc/LocalRepo/OriginDeb
#sudo cp -r /var/cache/apt/archives /etc/LocalRepo/OriginDeb //Короче копируем все в папку OriginDeb из кеша
#cd /etc/LocalRepo/OriginDeb
#gunzip * //Распаковываем все
#cp -r /etc/LocalRepo/OriginDeb /etc/LocalRepo/binary

3)Теперь создаем файл Packages.gz //Автор вооще пишет типа возьмите это возьми те то... А лично мне вооще оказалось не надо иметь файл например Sources.gz. Много урезал, ибо если топик этот называется для новичков так и пиши для них.
//Находясь в каталоге /etc/LocalRepo выполняем
#sudo apt-archives packages binary | gzip > Packages.gz //Некоторое время создается..
4) Перемещаем  или копируем Packages.gz в каталог с бинарниками.
#sudo cp Packages.gz /binary //Про бинарники слова вооще автор не сказал
5) Терь создаем бекап файла sources.list
#sudo cp /etc/apt/sources.list  /etc/apt/sources.list.old
6) Закомментируйте все строки теперь в этом файле и одну строку напишите такую (не коментировать тока)
deb file:///etc/LocalRepo binary/
7) Теперь открываем консоль и обновляем репозиторий и делаем апгрейд
#sudo apt-get update
#sudo apt-get upgrade


ЗЫ Хоть все и разжевано но моё ИМХО это хотяб понятно.... +)

ЗЫЫ Я всего 2 недели в линукс....

« Последнее редактирование: 01 Июня 2008, 20:38:10 от LAlex »

Оффлайн masan

  • Любитель
  • *
  • Сообщений: 62
    • Просмотр профиля
Re: Создание локального репозитория
« Ответ #28 : 07 Июня 2008, 18:56:33 »
Или просто инет отрубить :) Тогда будет довольствоваться тем, что есть
нифига подобного. на диске в репозитории пакет есть, в списке пакетов синаптика его нет. очень часто бывает, что половина пакетов какимто образом тупо выпадает из списка. списки с локальных репозиториев обновить неудается. они какимто образом попадают в игнор при выполнении apt-get  update.

Оффлайн maxadrom

  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: Создание локального репозитория
« Ответ #29 : 30 Июня 2008, 01:07:42 »
Меня интересует есть ли способ создать "нормальный репозиторий" с помощью apt-move и доступом через ftp (vsftpd). Я имею в виду, то что из каталга pool программы не качаются.
Я не пытаюсь создать зеркало. это просто реп с пакетами вышедшими после дистрибутива. Желательно конечтно руководство.

 

Страница сгенерирована за 0.057 секунд. Запросов: 25.