Разделы сайта
Выбор редакции:
- Собрал файл сервер для 1с
- Обработка для выгрузки справочников из 1с 8
- Система компоновки данных - практика разработкиСКД Консоль - изучение Системы Компоновки Данных OnLine
- История почты и почтовых марок чили Какие бывают трек номера Почты Чили
- Как в Chrome включить или упаковать в CRX-архив расширение не из Chrome Web Store
- Плавная прокрутка в браузерах Плавная прокрутка в яндекс браузере плагин
- Английским телефонным будкам подарили вторую жизнь Красные телефонные будки в лондоне на английском
- Бесплатные файлообменники — как залить фото и получить ссылку на картинку Сервис для хранения изображений
- Как вырезать человека в фотошопе
- Логические выражения и логические операции
Реклама
Как создать новый репозиторий в Git. Делаем свой локальный deb репозиторий (Debian, Ubuntu etc.) своими руками Ubuntu локальный репозиторий |
Возник праздный интерес (пригодится обязательно, уверен, но пока праздный), допустим есть н-ное количество машин на Ubuntu, и если их много, то трафик обращений к репозиториям всех машин будет по-сути прямо-пропорционален их количеству и если апдейт одной машины - это еще куда ни шло, то 20 или больше, это уже серьезно. С анлимами для корпоратива у нас в стране плохо, поэтому вопрос трафика часто стоит очень остро. Да и канал грузить почем-зря тоже не стоит, когда имеются простые и элегантные решения. Если загуглить на данную тему, то прежде всего вылезают 2 популярных решения: apt-mirror и apt-proxy. Оба решения по-своему привлекательны, но поскольку для перевода этого всего в практическую плоскость надо осознать и сделать выбор, я расскажу вкратце особенности. Apt-mirror - это пакет, который делает полное локальное зеркало репозиториев. Оно устанавливается, настраивается, затем запускается и выкачивает все содержимое репозиториев, которые указали в настройках. В принципе хорошо, ведь все возможные пакеты будут доступны сразу и на высокой скорости. Но с другой стороны нам придется выкачать ВСЕ что нужно и не нужно. По-крайней мере этот нюанс поставил крест на выборе apt-mirror. Apt-proxy - работает по-несколько иному принципу, мне он понравился больше. Я считаю, что принцип даже более интеллектуален. Он не выкачивает все подряд, а качает только то, что было запрошено, то есть фактически при первом обращении он выкачивает нужный пакет из интернета, поэтому придется подождать, при последующих отдает его локальную копию. В общем кеширующее проксирование репозитория - наш выбор! В руках у меня, для экспериментов, оказались 2 машинки. Небольшой маловажный сервачок на Debian Squeese и десктоп с Ubuntu 9.10 Karmic. (На дебиане решил развернуть прокси для репов кармика, на десктопе соответственно подправить sources.list) Но ВНЕЗАПНО я не обнаружил в репах Squeese пакета apt-proxy. Побродив по интернетам, на странице проекта apt-proxy я познал, что жизнь штука сложная и что кто-то там разбился в автокатастрофе, возвращаясь с какой-то ITшной тусы. В итоге обещанный рефакторинг не закончен и в общем фиг его знает. Однако там же я увидел список клонов проекта, и о чудо, в дебиане оказался один из них: apt-cacher. НА СЕРВЕРЕ: Установка: Поскольку наши клиентские машины пользуют убунту, в конфиге прописываем path_map: Дефолтный порт apt-caher - 3142. Для того, чтобы повесить его на порт <1024, надо запускать его из под рута, что в целом не нужно. Таким образом получаем следущие связки: Причем, что порадовало, в отличие от многих пакетов, тут не надо указывать конкретный дистрибутив, то есть с этими настройками мы сможем обслуживать машины с любым дистрибутивом убунту. Включаем автозапуск демона: НА ДЕСКТОПНОЙ МАШИНЕ: Теперь вносим наш репозиторий в sources.list десктопной машинки: Недавно наткнулся на утилиту reprepro . Она помогает создавать локальный репозиторий deb-based дистрибутивов. Тут та меня осенило. Я давно собираю пакеты которых нет в официальных архивах потому каждый раз прогибаться по ним и устанавливать стало в падлу и я решил создать раздел с хранящимися там репозиториями таких пакетов. Так что бы при смене системы просто под монтировать его и пользать по надобности. Вещь как мне кажется полезнее чем сохранять кеш из apt-get. Создаем файл , добавляя нужные секции (подробнее об этом можно почитать в выводе команды man reprepro
в разделе CONFIG FILES)
Если каталог репозиторий не являеться текущим то в строке команды прописывают так называемую BASEDIR опции -b BASEDIR (в моем случае BASEDIR=/repository ). После создания файла /repository/conf/distributions
инициализацируем репозиторий Можно репозиторий заполнять пакетами. Для этого существует множество команд и опций, подробнее о которых можно узнать в man reprepro Добавление deb-пакета в репозиторий. Удаление deb-пакета из репозитория К примеру, для рассмотренного пакета foo_1.0.deb
, находящегося в ветке lenny
даем такую команду: Для использования репозитория нужно добавить его в файл /etc/apt/sources.list
в виде следующей строки (в общем виде): Что для нашего примера будет выглядеть так: Это базовое что я считаю достаточно в моем случае. Статья оригинала находиться Для того, чтоб можно было если вдруг что случится с системой Linux не скачивать программы заново, а установить из того что уже скачали. Вот я и подумал, как бы сделать так чтоб эти самые скачанные программы мы могли бы устанавливать самым обычным образом при помощи команды apt-get ? Размышляя о этом я пришёл к мысли о том, а почему бы с этих самых пакетов не создать локальный репозиторий? Подумал, погуглил, взял главный инструмент системного администратора, админский бубен и начал делать. Итак deb-пакеты у меня находятся там же где я их и оставил, до того как в качестве эксперимента переустановил систему, а именно в домашней директории в папке deb . У меня это /home/dante/deb , я описывал все это , у Вам же та директория куда Вы сохранили пакеты. Открываем терминал и переходим в папку с deb-пакетами. В моём случае в терминале команда выглядит так: cd /home/dante/deb
sudo apt-ftparchive packages ./ |gzip -9 > Packages.gz
sudo nano /etc/apt/sources.list
deb file:///home/dante/deb ./ # See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to ## Major bug fix updates produced after the final release of the
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## N.B. software from this repository may not have been tested as deb http://archive.ubuntu.com/ubuntu oneiric-security main restricted ## Uncomment the following two lines to add software from Canonical"s ## This software is not part of Ubuntu, but is offered by third-party Для того чтобы добавить нашу папку с deb-пакетами в источники приложений нам необходимо добавить следующую строчку. deb file:///home/dante/deb ./
Все репозиторий добавлен. Можете посмотреть на это в источнике приложений. Теперь Вам осталось лишь обновить списки пакетов. Сделать это можно в терминале при помощи команды: sudo apt-get update
Вместо использования dpkg -i package_name.deb для установки, можно создать локальный репозиторий для пакетов, принесенных на флешке или другом носителе, а потом использовать synaptic/kynaptic (или apt-get install package_name). 1. Все действия лучше проводить как root sudo su2.Теперь установите пакет dpkg-dev. Он будет содержать утилиту dpkg-scanpackages, которая нам и нужна. apt-get install dpkg-dev3.Поместите все.deb пакеты в директорию например, /myrepo (причем не непосредственно в эту директорию, а в поддиректории, расположенные в этой директории) 4. Выполните cd /myrepo dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz5. Теперь нужно внести новый репозиторий в /etc/apt/sources.list. Вставьте в /etc/apt/sources.list строчку (лучше вставить ближе к началу, т.к. apt-get (synaptic/kynaptic) ставит более высокий приоритет источнику, находящемуся раньше остальных) deb file:/myrepo ./6. Обновление списка репозиториев apt-get updateЕсли изменится содержимое директории с пакетами, повторите шаги 1,4. Для системных администраторов данная тема является чуть ли не первоочередной по важности. Ведь обычно любая организация, заботясь о безопасности и надёжности работы своих серверов и вообще сетей, разрабатывает и внедряет определённые политики безопасности. Которые, в свою очередь, предусматривают ограничения на доступ в открытый интернет для большинства клиентских машин из локальной сети. Однако и без этого никак нельзя, поскольку при их обслуживании необходимо проводить обновления программного обеспечения (ПО). Распространение этих обновлений при помощи сменных носителей очень неудобно, а при наличии большого числа компьютеров в обслуживаемой локальной сети практически невозможно. В данном случае, рациональным вариантом является организация локальных репозиториев пакетов, предварительно загруженных из Интернет. О двух основных подходах при решении данной задачи на примере систем Ubuntu будет далее изложено в данной статье. Как работают репозитории пакетов в системах Linux?Разработчики для поддержки своих дистрибутивов и комфортной работы пользователей снабжают (СУП) специальными ссылками. Они указывают на удалённые сервера, на которых хранятся самые актуальные и протестированные разработчиками пакеты ПО для данного дистрибутива. Благодаря этим ссылкам СУП «знает» когда и откуда загрузить и установить обновления пакетов. Эти ссылки могут указывать как на удалённый ресурс, так и на локальный. Во втором случае это может быть как другой компьютер в локальной сети, так и локальный накопитель и/или даже, если постараться - оптический привод. Deb http://ru.archive.ubuntu.com/ubuntu/ bionic universe Это и есть один из системных репозиториев, включенный в дистрибутив изначально. Существуют также репозитории, организованные отдельными проверенными пользователями, например: Deb https://repos.codelite.org/ubuntu/ bionic universe Это репозиторий, созданный разработчиком среды разработки CodeLite, специально для Ubuntu. И эта ссылка была добавлена в файл sources.list уже вручную самим пользователем-администратором компьютера. После чего становится возможной автоматическая установка актуальных и стабильных версий пакетов CodeLite, а также их обновление. А вот так может выглядеть ссылка на репозиторий, хранимый на оптическом носителе: Deb cdrom:/ bionic main multiverse restricted universe Как видно, ключевым словом, определяющим протокол доступа является значение, следующее после «deb». Для оптического носителя это «cdrom», а для доступа по сети - «https». Использование прокси для организации локального репозиторияДанный метод подразумевает доступ к репозиториям через кеш на прокси-компьютере, который имеет прямое подключение в Интернет. Механизм работы такого локального репозитория заключается в следующем:
Итак, для начала необходимо установить всё необходимое, т. е. веб-сервер и саму утилиту кеширования пакетов: $ sudo apt-get install apache2 apt-cacher При установке apt-cacher будет показан диалог настройки, в котором можно настроить нужное поведение утилиты, например задать автозапуск и работу в режиме демона. Также эти и некоторые другие важные настройки можно сделать (например с помощью редактора ) в конфигурационном файле /etc/default/apt-cacher . Для включения автозапуска apt-cacher нужно установить параметр AUTOSTART в значение «1»: $ sudo nano /etc/default/apt-cacher . . . # Set to 1 to run apt-cacher as a standalone daemon, set to 0 if you are going # to run apt-cacher from /etc/inetd or in CGI mode (deprecated). Alternatively, # invoking "dpkg-reconfigure apt-cacher" should do the work for you. # AUTOSTART=1 . . . $ sudo nano /etc/apt-cacher/apt-cacher.conf . . . ## Uncomment and set the IP range ## allowed_hosts = 192.168.1.105 - 192.168.1.125 #denied_hosts = . . . Как можно видеть, просто указывается диапазон нужных IP-адресов. После сохранения сделанных настроек необходимо перезапустить веб-сервер Apache: $ sudo service apache2 restart $ sudo systemctl restart apache2 Теперь необходимо указать клиентам, куда им нужно обращаться для установки пакетов и обновлений. Для этого на клиентских машинах нужно создать файл /etc/apt/apt.conf.d/01proxy с помощью того же редактора nano: $ sudo nano /etc/apt/apt.conf.d/01proxy И добавить в него строку со следующей инструкцией: Acquire::http::Proxy "http://192.168.1.100:3142"; Здесь в качестве адреса сервера, на котором установлен и работает apt-cacher указывается 192.168.1.100. Конечно, это может быть любой другой адрес, настроенный для этого сервера. Теперь можно проверить работу локального репозитория (а точнее удалённого, но доступного через прокси), выполнив команду обновления данных о доступных пакетах: $ sudo apt-get update APT-MIRROR – полноценный локальный репозиторийДанный способ является более «продвинутым» по сравнению с использованием apt-cache. Поскольку предполагает наличие полноценного хранилища пакетов прямо на локальном компьютере/сервере или в локальной сети. Но сначала такое хранилище необходимо создать, загрузив в него все необходимые пакеты. Как и в случае с apt-cache , в качестве распространителя пакетов выступает веб-сервер . Порядок настройки локального репозитория при помощи утилиты apt-mirror следующий:
Итак, установка необходимых утилит и пакетов: $ sudo apt-get install apache2 apt-mirror $ sudo mkdir /localrepo Теперь в конфигурационном файле /etc/apt/mirror.list нужно отредактировать строку с инструкцией «set base_path». Указав в ней только что созданный каталог для хранилища: $ sudo nano /etc/apt/mirror.list ############ config ################## # set base_path /localrepo Далее, в этом же файле можно добавить необходимые репозитории, с которых будут загружены пакеты. Можно скопировать все стандартный репозитории из /etc/apt/sources.list . $ sudo apt-mirror Это может занять длительное время, в зависимости от скорости соединения с Интернет. Данную команду очень полезно добавить в список регулярных процедур , чтобы локальный репозиторий обновлялся автоматически. После того, как локальный репозиторий будет полностью загружен, его содержимое должно быть примерно следующим: $ ls /localmirror mirror skel var Для последующего удобства настройки клиентов полезно создать на хранилище, которое содержится в каталоге mirror: $ cd /localrepo $ sudo ln -s /localrepo/mirror/us.archive.ubuntu.com/ubuntu/ ubuntu Теперь ссылка ubuntu будет использоваться для задания репозиториев на стороне клиентов с помощью редатирования файла /etc/apt/sources.list: Deb http://192.168.1.100/ubuntu trusty universe deb http://192.168.1.100/ubuntu trusty main restricted deb http://192.168.1.100/ubuntu trusty-updates main restricted . . . Здесь адрес 192.168.1.100 - это IP-адрес компьютера, на котором был создан и настроен локальный репозиторий. $ sudo apt-get update $ sudo apt-get install имя_пакета ЗаключениеВ заключение следует напомнить, что способы организации локальных репозиториев, описанные выше подходят для систем на базе формата debian-пакетов. Для систем, основанных на RPM следует использовать другие инструменты. Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter . |
Новое
- Обработка для выгрузки справочников из 1с 8
- Система компоновки данных - практика разработкиСКД Консоль - изучение Системы Компоновки Данных OnLine
- История почты и почтовых марок чили Какие бывают трек номера Почты Чили
- Как в Chrome включить или упаковать в CRX-архив расширение не из Chrome Web Store
- Плавная прокрутка в браузерах Плавная прокрутка в яндекс браузере плагин
- Английским телефонным будкам подарили вторую жизнь Красные телефонные будки в лондоне на английском
- Бесплатные файлообменники — как залить фото и получить ссылку на картинку Сервис для хранения изображений
- Как вырезать человека в фотошопе
- Логические выражения и логические операции
- Проверка орфографии в браузере