Перейти к содержимому

CLI

pcloud: PackageCloud в терминале

Один файл без зависимостей для Linux и macOS. Загружает, показывает и удаляет пакеты из терминала и CI.

Установка

pcloud публикуется в собственном репозитории pcloud/stable. Скрипт подключит его и установит ключ, дальше работает обычный менеджер пакетов.

curl -fsSL https://getpkg.ru/pcloud/stable/install.sh | sudo sh

На Alpine, где нет ни curl, ни sudo:

wget -qO- https://getpkg.ru/pcloud/stable/install.sh | sh

Затем:

  • sudo apt install pcloud
  • sudo dnf install pcloud
  • apk add pcloud

Каналы

  • stable: релизы, собранные по тегам.
  • devel: сборка каждого коммита в основную ветку. Чтобы перейти на неё, замените stable на devel в адресе скрипта.

Пакеты собираются для Debian 12 и 13, Ubuntu 22.04 и 24.04, Enterprise Linux 8–10 и Alpine 3.20–3.22 на amd64 и arm64. Для macOS в артефактах релиза есть готовые бинарники.

Настройка

Для работы pcloud нужен личный токен из кабинета.

pcloud config set token <token>
pcloud config show

Настройки хранятся в ~/.config/pcloud/config с правами 0600. Переменные окружения важнее файла, флаги важнее переменных.

Откуда pcloud берёт настройки
НастройкаКлюч в файлеПеременнаяФлаг
ТокенtokenPCLOUD_TOKEN--token

Адрес репозитория

Репозиторий адресуется как неймспейс/репозиторий. Для deb, rpm и apk добавьте семейство и релиз в том виде, в каком их показывает pcloud distributions.

Из чего состоит адрес для pcloud pushАдрес acme/tools/debian/sid: неймспейс acme, репозиторий tools, семейство debian и релиз sid. Семейство и релиз нужны только для deb, rpm и apk.acmeнеймспейс / toolsрепозиторий / debianсемейство / sidрелизвсегдатолько deb, rpm и apk
  • acme/tools/debian/sid
  • acme/tools/ubuntu/jammy
  • acme/tools/el/9
  • acme/tools/alpine/edge

Команды

pcloud push

pcloud push acme/tools/debian/sid ./hello_1.0.0-1_amd64.deb --wait

Загружает файлы. Сервер отвечает сразу, разбор и индексация идут в фоне; с --wait команда дождётся публикации или ошибки. Файл, который уже есть в репозитории, пропускается с предупреждением. Нужна роль разработчика или выше.

pcloud list

pcloud list acme/tools --type deb --arch amd64

Показывает пакеты репозитория: имя, версию, архитектуру, формат, дистрибутив, статус и id. Фильтры --type, --status и --arch, для скриптов есть --json.

pcloud rm

pcloud rm acme/tools <id> <id>

Удаляет пакеты по id из pcloud list; каждый удаляется отдельно, и код выхода 1, если хоть один не удалился.

pcloud distributions

pcloud distributions --type rpm

Показывает, что принимает сервер. В колонке TARGET указаны семейство и релиз для push.

Общие флаги и коды выхода

--token TOKEN
токен
--config PATH
другой файл настроек
--debug
печатать HTTP-запросы и ответы, заголовок Authorization скрыт
-q, --quiet
только ошибки
0
успех
1
ошибка API, сети или обработки пакета
2
неверные аргументы или неизвестный дистрибутив

Публикация из GitLab CI

Заведите CI-аккаунт с ролью разработчика, создайте для него токен и сохраните его в замаскированной переменной PCLOUD_TOKEN. pcloud прочитает её сам.

.gitlab-ci.yml
publish:
  stage: deploy
  image: pcloud
  rules:
    - if: $CI_COMMIT_TAG
  script:
    - pcloud push acme/tools/debian/sid ./dist/*.deb --wait

Начните с бесплатного репозитория

Регистрация займёт минуту, а первый пакет загружается одной командой.