#!/bin/sh
# command that checks opk version number
#set -e
VERSION=3
version ()
{
echo
echo "`basename $1` version $VERSION"
echo "command that checks opk version number"
echo
exit 0
}
usage ()
{
echo "
Usage: `basename $1` <options> [ files for install partition ]
Mandatory options:
--opk_file file name (e.g ./my_package.opk)
Optional options:
--version Print version.
"
exit 1
}
# Process command line...
while [ $# -gt 0 ]; do
case $1 in
--help | -h)
usage $0
;;
--opk_file) shift; opk_file=$1; shift; ;;
--version) version $0;;
*) copy="$copy $1"; shift; ;;
esac
done
test -z $opk_file && usage $0
###########################
end parsing command line
###########################
ar -x $opk_file control.tar.gz #extract control.tar.gz from .opk
tar -zxvf control.tar.gz ./control > /dev/null 2>&1
# extract control file from control.tar.gz, silent stderr/stdout
cat control |grep Version | sed -e "s/Version:\s*\(\d*\)\D*/\1/"
# grep Version keyword and remove it
rm control
rm control.tar.gz
# clean up
Использование:
opkversion.sh --opk_file ./mypackage.opk
Пример вывода:
9999
Настройте команду sed
, чтобы изменить политику фильтрации команды (номер версии пакета opk может быть очень сложным).
Поскольку у меня есть локальный кеш deb для сервера моей фермы серверов Debian, я предпочитаю использоватьapt-cacher-ng
(кеширующий прокси-сервер для репозиториев программного обеспечения)
Это прокси-сервер, специально поддерживающий APT/deb, достаточно настраиваемый и может кэшировать ваши файлы deb на довольно долгое время (настраиваемый ).
Вы устанавливаете его с помощью:
apt-get install apt-cacher-ng
И по умолчанию кэширует репозитории/deb-файлы в /home/apt-cacher-ng
. В этом каталоге он создает каталог для каждого репозитория, используемого на ваших серверах Debian/Ubuntu, а затем используемые дистрибутивы, что очень похоже на зеркальные структуры. В качестве дополнительного бонуса также гораздо проще вручную получить deb из кеша отсюда, чем с сервера Squid.
Чтобы использовать его на всех ваших серверах, добавьте в директорию /etc/apt/apt.conf.d
файл 02proxy
с содержимым:
Acquire::http { Proxy "http://your_proxy_APT_server:3142"; };
После того, как вы добавите этот файл, менеджер пакетов Debian будет проксировать все настроенные репозитории через настроенный прокси http APT.
Он также получил интересную страницу статистики для просмотра его деятельности.
Вам также может понадобиться открыть 3142/TCP в ваших брандмауэрах, чтобы позволить серверам обмениваться данными с вашим новым прокси-сервером APT.
Преимущество такой настройки заключается в том, что помимо загрузки только одной копии deb для множества серверов, а также экономии полосы пропускания и использования общедоступных репозиториев, вы можете обновлять внутренние серверы, которым не требуется доступ в Интернет (пример :DHCP-серверы ).
Как описано в Приложении B к Официальному руководству по установке , вы можете заставить свой DHCP-сервер выдавать файл preseed, добавив что-то подобное в его конфигурацию:
if substring (option vendor-class-identifier, 0, 3) = "d-i" {
filename "http://host/preseed.cfg";
}
Затем, используя эти параметры preseed,вы можете настроить зеркало и прокси автоматически:
d-i mirror/protocol string http
d-i mirror/country string manual
d-i mirror/http/hostname string http.us.debian.org
d-i mirror/http/directory string /debian
d-i mirror/http/proxy string http://your_proxy_APT_server:3128/
См. также:Как настроить сервер кэширования Apt в Ubuntu или Debian
редактировать:Подход к предварительному заполнению, который я отредактировал в Ответ Руи Ф. Рибейро также работает со Squid или любым другим прокси-сервером, и (пока вы используете DHCP ), вероятно, лучший подход.
Во-первых, mirror
будет дополнен именем системного домена, поэтому добавьте запись DNS для mirror.yourdomain.com
. Укажите это на сервер с Apache; в этом примере на том же сервере работает Squid.
Убедитесь, что в Apache есть мод _прокси и мод _прокси _HTTP с включенным (например, a2enmod proxy; a2enmod proxy_http
в Debian ). Затем добавьте новый виртуальный хост:
<VirtualHost *:80>
ServerName mirror.yourdomain.com
ServerAlias mirror
ProxyPass /debian http://http.us.debian.org/debian
ProxyRemote http http://localhost:3128/
ProxyVia off
</VirtualHost>
После перезапуска Apache загрузка пакетов с «зеркала» Debian должна проходить через кеш.