Вопрос или проблема
Можно ли создать частное хранилище для пакетов Linux?
т.е.
sudo apt-get install X
где X расположен на частном сервере, доступ к которому есть только у меня и других пользователей с разрешениями?
Если да, то как это сделать?
(По сути, X будет содержать полезные bash-функции, которые разработали мои коллеги и я)
Кроме того, можно ли использовать apt-get install
напрямую с Github? Например:
sudo apt-get install git+https://github.com/X/Y.git
(что-то примерно наподобие этого)
Вы можете хранить нужные пакеты, например, на nfs. Когда этот nfs примонтирован на вашем компьютере, вы можете просто установить эти пакеты с помощью команды, такой как:
sudo dpkg -i /path/to/deb/file.deb
apt-get — это просто более сложная версия для установки приложений, которая включает зависимости и загружает нужные файлы из интернета.
Но, возможно, вы ищете что-то вроде этого:
http://www.omgubuntu.co.uk/2010/09/keryx-offline-package-installation-made-easy-in-ubuntu
или это: https://help.ubuntu.com/community/Repositories/Personal
Вы можете указать защищенные паролем репозитории APT, используя
deb https://username:[email protected]/ubuntu …
в файлах /etc/apt/sources.list.d
.
Я получаю ошибку с этой конструкцией user:password@repo в списке
Я создал файл /etc/apt/auth.conf.d/apt_auth.conf со следующим содержимым:
machine http://a.b.c.d:8081/artifactory/debian login admin password jfrog-code
и удалил user/password из файла списка sources.list.d.
Ответ или решение
Создание частного репозитория для Linux пакетов является задачей, которая может быть выполнена несколькими способами, учитывая, что она заключается в предоставлении ограниченного доступа к пакетам для узкого круга пользователей. Рассмотрим, как это можно реализовать и какие альтернативы существуют.
Теория
Для создания приватного репозитория вам необходимо учитывать несколько аспектов. Приватные репозитории позволяют хранить пакеты на сервере, доступ к которому будут иметь только те пользователи, которых вы авторизовали. Один из основных вариантов — это использование защищенных репозиториев APT, для чего вам потребуется настроить аутентификацию и задать специальные права доступа. Например, возможна организация репозитория на NFS, либо создание собственного Debian-репозитория с применением Artifactory или аналогичных решений.
Пример
Возьмем пример настройки APT-репозитория с аутентификацией. В вашем списке источников для APT (/etc/apt/sources.list.d
) можно указать URL с включенными данными для входа:
deb https://username:[email protected]/ubuntu ...
Однако, как отмечено в примере, такая конструкция может вызывать ошибки. Более надежный метод — использование конфигурационного файла /etc/apt/auth.conf.d/apt_auth.conf
, где вы можете задать:
machine http://a.b.c.d:8081/artifactory/debian login admin password jfrog-code
Данный подход позволяет разделить данные для аутентификации и параметры репозитория.
Применение
Для организации подобного частного репозитория вам потребуется несколько ключевых шагов:
-
Настройка сервера для хранения пакетов. Это может быть решение на основе Artifactory или простая организация на NFS.
-
Конфигурирование доступа к репозиторию через файлы конфигурации APT, обеспечивая безопасность данных передачи за счет использования HTTPS и специальных конфигурационных файлов для ввода логина и пароля.
-
Пакетирование ваших скриптов и функций в формат .deb, если они требуют установки через
apt-get
.
Что касается установки пакетов непосредственно с GitHub, это не предусмотрено функционалом apt-get
. Однако вы можете использовать инструменты вроде git
для клонирования репозиториев и самостоятельной сборки или установки их содержимого.
Эти шаги обеспечат безопасность и удобство использования ваших bash-функций среди коллег, позволяя избежать общедоступного распространения ваших наработок.