Установка NuGet2 под CentOS 8
Если используется PostgreSQL, предварительно нужно установить на сервере БД расширение для PostgreSQL citext (если не установлено):
# sudo apt-get install postgresql-contrib-13Команда выше применима для 13-й версии
Создаем БД ltoolsnuget в которой устанавливаем расширение citext:
# sudo -i -u postgres psql -U postgres -c 'create database ltoolsnuget;'
# sudo -i -u postgres psql -d ltoolsnuget -c 'CREATE EXTENSION IF NOT EXISTS citext WITH SCHEMA public;'Подключаемся к серверу по SSH с пользователем с правами root.
Разархивируем папку NuGet2-linux.zip в /opt/Primo/NuGet2:
# cd /srv/samba/shared/install
# sudo unzip NuGet2-linux.zip -d /opt/Primo/NuGet2Создаем службу:
Переходим в каталог /opt/Primo/NuGet2:
# cd /opt/Primo/NuGet2Копируем файл службы (идет с комплектом поставки) в /etc/systemd/system:
# sudo cp Primo.Orchestrator.NuGet.service /etc/systemd/system/Primo.Orchestrator.NuGet.service
# sudo systemctl daemon-reloadПомещаем службу в автозапуск:
# sudo systemctl enable /etc/systemd/system/Primo.Orchestrator.NuGet.serviceРедактируем конфигурационный файл NuGet-сервера:
# sudo vim appsettings.ProdLinux.jsonУстанавливаем ApiKey, предварительно зашифровав его, и ConnectionString с зашифрованным паролем:

Даем права на запуск:
# sudo chmod -R 777 /opt/Primo/NuGet2/BaGetСтартуем службу:
# sudo systemctl start Primo.Orchestrator.NuGetПроверяем состояние службы:
# sudo systemctl status Primo.Orchestrator.NuGetРедактируем конфиг WebApi:
# sudo vim appsettings.ProdLinux.jsonЗадаем параметры интеграции с NuGet-сервером:

NuGetBaseUrl – адрес NuGet-сервера. Если порт в конфигурационном файле NuGet-сервера не менялся, и он на том же сервере, что и WebApi, остается без изменения.
ApiKey – такой же, как в конфигурационном файле NuGet-сервера. Внешнее обращение в Nuget-серверу происходит через прокси (nginx/IIS).
🔸 Поэтому сертификат у nginx/IIS обязательно должен быть валидным!
Обновление с версии 1.25.11
-
Перезапись пакетов: В файл
appsettings.ProdLinux.jsonдобавлена настройкаAllowPackageOverwrites. При значенииtrue(по умолчанию) система разрешает перезаписывать существующие пакеты на сервере. При значенииfalse** запрещает перезапись существующих пакетов. -
Таймаут операций: В конфигурации WebApi (
appsettings.ProdLinux.json) в секции"NuGet"можно добавить параметр"Timeout"(в секундах) для контроля времени выполнения операций с NuGet-сервером.{ "NuGet": { "TaskPeriod": 2, "Timeout": 20 } }