понедельник, 23 февраля 2009 г.

Еще раз Локальный сервер обновлений Ubuntu

Начав экспериментировать столкнулся с некоторыми проблемами, и пришлось искать другие статьи... В этой статье я объединил несколько статей в одну для большей полноты информации, так же добавил некоторые коменты с форумов и тех же статей. Собирал на скорую руку, так что могут быть разбросаны некоторые части. поэтому вот что получилось!

Сегодня мы хотим осветить очень важную тему, особенно, если у вас несколько компьютеров под управлением Ubuntu Linux и не хочется обновлять каждый из них через интернет. В общем, речь пойдет про локальные сервера обновлений для Ubuntu.

Во многом эта заметка основана на статье «Apt-cacher как корпоративный сервер обновлений для Ubuntu/Kubuntu/*buntu», размещенной на сайте habrahabr.ru.

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

Гораздо более интересным и гибким решением является apt-cacher, который умеет хранить только нужные пакеты, обновлять локальный репозиторий по мерее обновления основного, и, конечно же, качать пакет только один раз, а затем брать его из кэша. В общем-то, это действительно хорошее решение для обновления компьютеров с Ubuntu в количестве больше одного, объединенных в одну сеть.

Из минусов автор статьи выделяет следующие: отличие структуры хранения пакетов от оригинальной (а разве нам важно, как они хранятся?) и обязательное наличие веб-сервера Apache (который поднимается за 2 минуты).

Мы не будем сильно зацикливаться на тонких настройках, которые отлично описаны в оригинальной статье, а просто обозначим основные моменты.

Итак, поехали: sudo apt-get install apt-cacher.

Создаем и назначаем права на папку, в которой будут храниться пакеты. Надо отметить, что apt-cacher не требует сразу место под весь объем репозиториев (около 22 Гб), а хранит только то, что нужно. Напомним, что в Debian-дистрибутивах Apache запускается от юзера www-data группы www-data, следовательно нужно сделать этого пользователя владельцем созданной папки.
Создадим папку для хранения кэша(т.е. самих пакетов) и назначим ей права
sudo mkdir /var/cache/apt-cacher
sudo chown www-data:www-data /var/cache/apt-cacher/*

Вы можете создать папку в любом месте
под юзером и группой www-data будет запускаться наш apt-cacher, так же под ним надо будет запускать Apache.

Настройки apt-cacher хранятся в файле: /etc/apt-cacher/apt-cacher.conf. Его и нужно чуть-чуть подредактировать, указав там созданную папку для пакетов, а также некоторые другие параметры. Опять же, пример конфигурации смотрите в оригинальной статье на Хабре.
С настройкой немного сложнее, разбирать настройку самого apt-cacher`a, будем на примере.
Откроем для редактирования файл /etc/apt-cacher/apt-cacher.conf:
sudo nano /etc/apt-cacher/apt-cacher.conf

Рассмотрим пример конф. файла:
cache_dir=/var/cache/apt-cacher #директория которую мы создали и в котрой будет храниться кэш.
admin_email=root@localhost # мыло админа :)
daemon_port=9999 #порт на котором будет висеть наш apt-cacher
group=www-data #группа под которой будет запускаться наш apt-cacher
user=www-data #юзер под которой будет запускаться наш apt-cacher

allowed_hosts=* #хосты доступ с которых разрешен на наш сервер(по-умолчанию разрешено всем)
denied_hosts= #соответственно запрещен.

generate_reports=1 # раз в сутки будут генерироваться отчеты об использовании apt-cacher`a(1-генерить, 0 - нет)

clean_cache=1 #Очистка кэша раз в сутки,
offline_mode=0 #Если 0, то с apt-cacher будет тянуть обновления с офф. сервера, если 1, то раздавать только то что у него в кэше
logdir=/var/log/apt-cacher #папка в которой будут храниться логи доступа к apt-cacher`у
expire_hours=0 # apt-cacher может работать в двух режимах. В первом режиме сервер будет сравнивать expire_hours со временем последнего обновления пакета, и если оно становится меньше, то искать на офф. зеркале обновление для этого пакета, Во-втором режиме сервер будет сравнивать напрямую с офф.сервером, но в этом случае бОльшая вероятность рассинхронизации данных кэша и индексных файлов. Я всегда использую второй вариант, т.к. Для меня важнее получить вовремя обновление. 0 — Второй режим, все что больше 0 — то часы первого режима.
http_proxy= #адрес вашего прокси-сервера(если он у вас есть)
use_proxy=1 #Использовать(1) или нет(0) прокси.
http_proxy_auth= #Авторизация на прокси(формат: user:password)
use_proxy_auth= # Использовать ли авторизацию? (1-да, 0-нет)
limit=0 #Ограничитель скорости. 0 — нет ограничений. 250K — 250кбит/с, 2m — 2мбит/с
debug=0 #Уровень отладки. 0 — маленький лог файл, 1 — большой.
path_map = ubuntu archive.ubuntu.com/ubuntu ; canonical archive.canonical.com/ubuntu ; medibuntu packages.medibuntu.org/ ; #Самый интересный параметр. Настройка зеркал обновления, т.е. Откуда будут тянуться обновления.

Думаю с настройкой самого apt-cacher`a все(ну или почти все) ясно.

Следующий шаг — настройка Apache. Для работы apt-cacher нам понадобится Perl и ExecCGI в Apache. Файл конфигурации лежит в: /etc/apt-cacher/apache.conf. Достаточно лишь прописать Alias: Alias /apt-cacher /usr/share/apt-cacher/apt-cacher.pl и разрешить выполнять Perl скрипты в указанной папке: Options ExecCGI, AddHandler cgi-script .pl.
Пример моего конфига(файл: /etc/apt-cacher/apache.conf
Alias /apt-cacher /usr/share/apt-cacher/apt-cacher.pl


Options ExecCGI
AddHandler cgi-script .pl
AllowOverride None
order allow,deny
allow from all

Установка всего необходимого для LAMP сервера:

sudo apt-get update
sudo apt-get install apache2 php5 php5-mysql mysql-server-5.0
(либо)
sudo aptitude install apache2 php5 mysql-client-5.0 mysql-server-5.0 phpmyadmin libapache2-mod-php5 libapache2-mod-auth-mysql php5-mysql

И создаём ссылку на phpmyadmin
sudo ln -s /etc/phpmyadmin /var/www

Проверяем работоспособность установленных компонентов

По умолчанию файлы web приложений находятся в папке:
/var/www

А вэб сервер доступен по адресу:
http://localhost

После установки — перезапускам апач:
sudo /etc/init.d/apache2 restart
Проверяем работоспособность нашего веб-сервера — заходим в браузер и пишем:
localhost/apache2-default
Должна появиться надпись: «It works!».

Если сервер работает нормально то вы должны увидеть ссылки на две папки:

apache2-default/ 20-Nov-2004 23:16
phpmyadmin/ 25-Mar-2007 03:47

phpmyadmin доступен по адресу:
http://localhost/phpmyadmin

По необходимости доставляются другие php модули типа php5-gd, php5-imagick, php5-curl и другие.
Конфиг apache2 в убунту организован интересным образом. Вот листинг /etc/apache2/ :

apache2.conf
conf.d/
envvars
httpd.conf
mods-available/
mods-enabled/
ports.conf
sites-available/
sites-enabled/

В apache2.conf - основная конфигурация веб сервера.

httpd.conf - пустой, оставлен для совместимости.

mods-available/ - каталог содержащий подключаемые конфигурационные файлы апача, которые активируют тот или иной его модуль.

sites-available/ - каталог содержащий подключаемые конфигурационные файлы апача, которые активируют тот или иной виртуал хост.

Создаем виртуальный хост

Создаем папку в которой у нас будут находится файлы сайта, на пример:
mkdir /home/dm/web/mysite

и кладем в нее фалы drupal, joomla или любой другой движок (Скачать можно с http://drupal.ru или http://www.joomla.ru/)

Затем открываем файл hosts
и добавляем
127.0.1.1 mysite

Конечно в место mysite можно написать все что угодно, mysite приведено в качестве примера. Это делается для того, чтобы наш сайт был доступен по по этому адресу. В данном случае по http://mysite

Так же, чтобы апач не выдавал ошибку

* Restarting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName

при его перезагрузке добавляем в /etc/hosts в первую строчку название вашего компьютера.

127.0.0.1 localhost.localdomain localhost dm-desktop
127.0.1.1 dm-desktop
127.0.1.1 mysite

Где dm-desktop - имя вашего компьютера.

Теперь настраиваем виртуальный хост в apache

Чтобы активировать модуль или виртуал хост созданы утилиты a2enmod и a2ensite.

Пример использования:

xxx@xxx:~$ sudo a2enmod php5
Module php5 installed; run /etc/init.d/apache2 force-reload to enable.

По сути a2enmod, a2ensite, a2dismod и a2dissite создают или удаляют символический линк конфига из sites-available/ в sites-enabled/ (mods- в случае с модулями).

Добавление virtual host:

1. Скопировать /etc/apache2/sites-available/default в /etc/apache2/sites-available/example.com

xxx@xxx:~$ cd /etc/apache2/sites-available
xxx@xxx:~$ sudo cp ./default ./example.com

Создаем файл конфигурации хоста mysite

kdesu kate /etc/apache2/sites-available/mysite

2. Отредактировать example.com


ServerName www.example.com
ServerAlias example.com
ServerAdmin webmaster@example.com

DocumentRoot /var/httpdocs/example.com

Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all

ErrorLog /var/log/apache2/error.log

LogLevel warn

ServerSignature On

с другого источника(для сравнения):


ServerName http://www.example.com
ServerAlias example.com
ServerAdmin webmaster@example.com

DocumentRoot /var/httpdocs/example.com

Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all


и еще:


ServerAlias mysite www.mysite
DocumentRoot /home/dm/web/mysite

AllowOverride All



3. Создаем каталог для Document Root:

xxx@xxx:~$ mkdir -p /var/httpdocs/example.com

Настройка SSL:

1. Создание сертификата:

make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem

(актуально для Feisty, в более старых релизах нужно выполнить apache2-ssl-certificate)(так же проверить наличие папки SSL,если необходимо, то создать)
2. Добавить порт 443 в /etc/apache2/ports.conf

Listen 80
Listen 443

3. Скопировать /etc/apache2/sites-available/default в /etc/apache2/sites-available/ssl, отредактировать default таким образом:

NameVirtualHost *:80


с другого источника(для сравнения):

NameVirtualHost *:80

...


также отредактировать /etc/apache2/sites-avaible/ssl:

NameVirtualHost *:443


SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.pem


с другого источника(для сравнения):

NameVirtualHost *:443

...
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.pem
...


4. Добавить ssl в examle.com таким же образом как и в файле ssl, пример:


ServerName www.example.com
ServerAlias example.com
ServerAdmin webmaster@localhost

DocumentRoot /var/httpdocs/example.com
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.pem

Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all

ErrorLog /var/log/apache2/error.log

LogLevel warn

ServerSignature On

с другого источника(для сравнения):


ServerName http://www.example.com
ServerAlias example.com
ServerAdmin webmaster@localhost

DocumentRoot /var/httpdocs/example.com
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.pem

Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all


ErrorLog /var/log/apache2/error.log


LogLevel warn

ServerSignature On




5. Активация модуля и сайта:

xxx@xxx:~$ a2enmod ssl
xxx@xxx:~$ a2ensite ssl

с другой статьи:
Затем включаем наш виртуальный хост.
sudo a2ensite mysite

И включаем модуль rewrite для работы "чистых ссылок"

sudo a2enmod rewrite

Создаем базу mysql. Можно использова для работы с MySQL phpmyadmin.
http://localhost/phpmyadmin

6. Рестарт веб сервера:

xxx@xxx:~$ sudo /etc/init.d/apache2 restart
* Forcing reload of web server (apache2)… [ OK ]

и вводим в браузере http://mysite

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

chmod -R 777 /home/dm/web/mysite/

Так же не забудьте создать папку files (нужна для работы Drupal)

mkdir /home/dm/web/mysite/files

и дать ей права на запись

chmod 777 /home/dm/web/mysite/files

Если у вас не будут работать "чистые ссылки" удостоверьтесь что в директории с друпалом есть файл .htaccess У меня он почему то упорно не хотел разархивироваться.

А у меня заработало только вот так:

ServerAlias mysite www.mysite
DocumentRoot /home/user/Projects/mysite

home/user/Projects/mysite>
AllowOverride All

Так, собственно, и описано в документации апача.

Сообщение об ошибке "apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName" говорит о том, что сервер apache2 не знает ServerName, поэтому использует ip адрес 127.0.1.1
ServerName можно прописать в файле конфигурации /etc/apache2/httpd.conf. Например:

NameVirtualHost localhost
ServerName localhost


ServerName "mysite.example.net"
DocumentRoot "/home/dm/web/mysite"


Сначала все что установил удалить командой:
sudo aptitude purge apache2 apache php5 mysql-client-5.0 mysql-server-5.0 phpmyadmin libapache2-mod-php5 libapache2-mod-auth-mysql php5-mysql
А потом заново установи по инструкции.

В /etc/apache2/apache2.conf , к примеру:
DirectoryIndex index.html index.php main.html main.php index.htm

Вообще в случае ошибок типа Invalid command '...', perhaps mis-spelled or defined by a module not included in the server configuration
Нужно загружать необходимые модули, т.е в httpd.conf прописать например LoadModule access_module /etc/httpd/modules/mod_access.so

Apache наплевать на то, какие IP назначены именам его виртуальных хостов в /etc/hosts.conf. Посему, их надо указать явно: "127.0.0.4:80" и "127.0.0.5:80" соответственно.

Настройка mysql:
Mysql после установки работоспособна без дополнительных настроек. Так как пользователь базы root без пароля, нужно задать для него пароль:

xxx@xxx:~$ mysqladmin -u root password myPassword

Проверка базы:

xxx@xxx:~$ mysql -u root -p

Настройка PHP: /etc/php5/apache2/php.ini, после смены настроек нужно перегрузить апач.

Проверяем работоспособность PHP5. Создадим файл phpinfo.php:
sudo gedit /var/www/phpinfo.php
В него заносим следующее:

Сохраняем его и заходим по ссылке: localhost/phpinfo.php
Если появилась инфо о php5 — все ок!

Устанавливаем XDebug и соединяем его с PHP5
В случае, если вы ставили апач и пхп по выше изложенным инструкциям, то пора показать как установить и приклеить к этому всему отладчик xdebug:
1. В терминале вводим:
sudo apt-get install php-pear php5-dev
2. Далее:
sudo pecl install xdebug
3. Теперь открываем php.ini:
sudo gedit /etc/php5/apache2/php.ini
XDebug лежит в /usr/lib/php5/20060613+lfs/ (если ставили сервер, по этим инструкциям). Возможно последняя директория может отличаться. Захотите — найдете :).
Небольшой тюннинг по текущему пункту:

* тюннинг №1:

По умолчанию расширения (extensions) хранятся в каталоге вида /usr/lib/php5/20060613+lfs. Мне такой путь не нравится, поэтому предлагаю поменять каталог на /usr/lib/php5/ext и прописать изменения в php.ini
sudo gedit /etc/php5/apache2/php.ini
Заменяем; extension_dir=’./’ на extension_dir = “/usr/lib/php5/ext/”.

* тюннинг №2:

Я бы предложил положить строки, касающиеся xdebug, в /etc/php5/conf.d/xdebug.ini. Так реально удобнее.

Итак, пишем в конец файла php.ini (xdebug.ini, если использовали тюннинг №2) следующее:
zend_extension=«/usr/lib/php5/20060613+lfs/xdebug.so» ;(«/usr/lib/php5/ext/xdebug.so», если использовали тюннинг №1)
xdebug.remote_enable=1
xdebug.profiler_output_dir = «/home/yourhome/projects/tmp_xdebug»; здесь директория для сохранения результатов профилировщика

Устанавливаем Eclipse+PDT и настраиваем в нем XDebug
1. Качаем Eclipse SDK v3.3.1.1
2. Распаковываем эклипс в директорию на ваш выбор, запускаем его и заходим в меню Help > Software Updates > Find and Install

если при запуске эклипс матюкается, что мол «а джавы-то нет» :), то набираем ручками в терминале такую команду:
sudo apt-get install sun-java6-jdk


3. Выбираем «Search for new features to install»
4. В следующем окне нажимаем «New Remote Site...»
5. В поле «Name» вводим «PDT Updates», а в «URL» — «download.eclipse.org/tools/pdt/updates/». Ставим галочки на всех зеркалах. Next >
6. Как только поиск закончится — раскрываем «PDT Updates» и ставим галочку возле «PDT SDK...». Также не забываем нажимать «Select Required» для установки необходимых компонентов
7. Перезагружаем Эклипс
8. Идем Window > Open Perspective > PHP. Если такой пункт меню есть — все ок. Если нет — пробуем такие варианты:
у меня проблема эта возникла из-за виртуальной машины java. Я поставил java-6-sun, потом поставил eclipse+pdt. PHP Perspectives отсутствовала (хотя ставил All in one)
В итоге помогла команда:
sudo update-alternatives --config java
Выбрал там установленную java-6-sun, запустил Eclipse — вуаля. все есть
9. Заходим в Window > Prefernces… > PHP > PHP Servers.
10. Жмем «New». В поле «Name» вводим «My Site On localhost», ниже — «localhost». Next. Finish.
11. Теперь идем в Window > Prefernces… > PHP > Debug. Выбираем такие настройки:
PHP Debugger: XDebug
Server: My Site On localhost
PHP Executable: None Defined
12. Идем в Window > Prefernces… > General > Web Browser. Если галочка «Use internal Web Browser» скрыта, то жмем «New» и добавляем свой любимый браузер.
13. Все! Создаем PHP-проект и радуемся. Если не радуемся — курим мануалы на www.eclipse.org :)

первый виртуальный хост является копией основной конфигурации сервера.
следующие - по своему желанию.

в папку sites-available копируется файл default с переименованием его в имя нужного виртуального хоста - это первый виртуалхост.

второй:


ServerAdmin webmaster@сайт.ру

DocumentRoot /var/www/имя_папки_виртуального_хоста

Options FollowSymLinks
AllowOverride None


Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
# This directive allows us to have apache2's default start page
# in /apache2-default/, but still have / go to the right place
#RedirectMatch ^/$ /имя_папки_виртуального_хоста/


ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

AllowOverride None
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all


ErrorLog /var/log/apache2/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /var/log/apache2/access.log combined
ServerSignature On

Alias /doc/ "/usr/share/doc/"

Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128


с такой конфигурацией у меня работает с десяток виртуальных хостов


Вся установка происходит намного проще, чем тут описанно!

1) Запускаем Synaptic (если его у Вас нет - поставьте). Далее, уже в Synaptic`е, Правка -> Отметить пакеты для задачи -> Ставим галочку LAMP. Жмем OK. Применить. Все, Apache, PHP и MySQL установленны!

2) phpMyAdmin так же ставиться из репозитария.

3) Ставим Drupal из репозитария но не запускаем. Качаем новую версию с Drupal.ru и заменяем файлы установленного на распакованные из скачанного.

4) Запускаем http://localhost/instal.php Далее по указаниям инсталятора.

На этом все.

Для настройки апача, и контроля использую программу rapache простая и понятна! Советую

su
apt-get install rapache

сайт не виден по сети, то:
sudo ufw enable
sudo ufw allow 80/tcp

при открытии http://localhost/phpmyadmin/ показывается только список файлов:
aptitude search myadmin
вот решение проблемы:
заходим в каталог /etc/apache2/
если файл apache2.conf существует, а conf.d/phpmyadmin.conf нет, то выполняем слудующее:
sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin.conf
и перезапускаем апач, все работает!"
===================================================================================

У apt-cacher`a есть perl скрипт для конвертации пакетов в формат apt-cacher`a, имя ему apt-cacher-import.pl, и лежит он в /usr/share/apt-cacher. Пользоваться им следующим образом:
/usr/share/apt-cacher/apt-cacher-import.pl -r -c /etc/apt-cacher/apt-cacher.conf /var/my_repos

-r — рекурсивный обход каталога
-c — не обязательный параметр, в котором указывается путь к конф. файлу.
/var/my_repos — директория к репозиторию формата apt-mirror(обычный дебиановский формат репозитория).

В результате этой команды, в папку /var/cache/apt-cacher будут скопированы и переведены в нужный формат все пакеты, которые будут найдены в /var/my_repos
Если вам необходимо оставить дебиановский репозиторий, при этом чтобы репозиторий apt-cacher`a не занимал дополнительного места, к команде добавьте -s, тогда скрипт просто сделает сим-линки на пакеты. НО! Если вы после этого удалите дебиановский репозиторий, то пакеты для apt-cacher`a так же будут не доступны(это же обычные сим-линки)
Если же вы использовали apt-proxy, то у apt-cacher`a тоже имеется скрипт для перевода его репозитория в свой. Скрипт лежит: /usr/share/apt-cacher/apt-cacher/apt-proxy-to-apt-cacher.pl.

Запуск демона и настройка клиентских машин.


Запустить сервер как обычно просто:
sudo /etc/init.d/apt-cacher start

Если вы не допустили синтаксических и иных ошибок в конфигурациях apache и apt-cacher`a, то сервер радостно запуститься, о чем сообщит вам не менее радостным сообщением [OK], если же произошла ошибка, то сервер сделает грустную гримасу и сообщит [FAIL]. Тогда вам придется все перечитать заново и возможно немного по`google`ить.
Чтобы проверить запуск можно зайти на localserver:9999 (где localserver — сервер на котором запущен apt-cacher).

Настройка клиентов

Собственно нужно всего лишь добавить 1 строку(и закоментировать остальные) в файл /etc/apt/sources.list:
deb localserver:9999/ubuntu intrepid multiverse restricted main universe

Тут все как и в обыном репозитории, указываете что вам нужно обновлять, какой дистрибутив и т.п. Localserver — это сервер на котором запущен apt-cacher.

Если вы включили статистику, то её можно посмотреть localserver:9999/reports

Почти всё готово! Остается только запустить сервер: sudo /etc/init.d/apt-cacher start. По умолчанию сервер будет висеть на 9999 порту.

Теперь на всех компьютерах, которые должны тянуть обновления с этого сервера нужно открыть файл /etc/apt/sources.list, закомментировать в нем все строки и добавить одну новую: deb updateserver:9999/ubuntu intrepid multiverse restricted main universe, где updateserver — имя машины, на которой мы только что подняли apt-cacher.

Создание локального репозитория.
1. Устанавливаем dpkg-dev
apt-get install dpkg-dev
2. Создаем директорию где будут хранится пакеты
mkdir /usr/local/mydebs
3. Открываем gedit и создаем новый файл. Туда вставляем:
cd /usr/local/mydebs
dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz
Файл называем например update-mydebs и сохраняем в домашнюю директорию /bin. Если ресурса ~/bin нет - то создайте его. Этот ресурс будет автоматически добавлен в предопределенные пути системы.
4. Делаем скрипт апдейта локального репозитория исполняемым:
chmod u+x ~/bin/update-mydebs
5. Правим файл sources.list
Жмем ALT+F2 вводим
gksu gedit /etc/apt/sources.list
Добавляем в него строку
deb file:/usr/local/mydebs ./
Сохраняем файл.

Использование репозитория
sudo update-mydebs
sudo apt-get update
Далее репозиторий используется как обычно.

1 комментарий:

  1. Создание локального репозитория.

    Задача: есть много вкусных утилит скачаных с помощью apt-get, на что собственно потрачено время и трафик. Хочется всё это дело забэкапить чтобы не качать по второму разу.

    Решение: Предлагаю решить это с помощью apt-move

    Собственно сама установка:
    sudo apt-get install apt-move

    Редактируем конфигурационный файл
    sudo nano /etc/apt-move.conf

    В поле LOCALDIR= путь к нашему бэкапу, у меня это:
    LOCALDIR=/media/sda5/Distribs_Linux/repozit

    Далее стартуем командой:
    sudo apt-move update

    И процес бэкапа пошел. По сути apt-move update является выполнением apt-move get, apt-move move, apt-move delete, apt-move packages.
    apt-move get - формирует мастер-файл
    apt-move move - переносит пакеты из кэша apt в локальное зеркало
    apt-move delete - удаляет устаревшие пакеты
    apt-move packages - создает Packages.gz и Sources.gz дерева локального зеркала

    ОтветитьУдалить