|
2 tahun lalu | |
---|---|---|
cpm | 2 tahun lalu | |
.gitignore | 2 tahun lalu | |
LICENSE | 2 tahun lalu | |
README.md | 2 tahun lalu | |
changelog.md | 2 tahun lalu | |
cpm.py | 2 tahun lalu | |
crt.py | 2 tahun lalu | |
index.toml | 2 tahun lalu | |
packages.toml | 2 tahun lalu |
Система управления пакетами Чио.
Cpm упращает установку, обновление, удаление компонентов Чио.
Для чего CPM?
Предположим вы захотели установить себе Чио. Репозиторий скачать можно только целиком, полным архивом. Это хорошо, когда вам нужен весмь функционал, но зачастую это не так. Обычно требуется только ядро, пара плагинов и дополнительные компоненты к ним. Если вы скачали весь архив, то придётся саому удалять лишние. Только вот есть шанс удалить нужный компонент, тогда придётся начинать с начала.
Теперь предположим, что вышла новая версия какого-либо компонента. Новаая версия... новые функции, исправление старых багов и добавление новых. Как вы узнаете, что вышла новая версия? Не думаю, что вы будете время от времен6и заглядывать в репозиторий. А даже если и будете, ир придётся скачиывать весь архив.
Чтобы упростить весь этот процесс и была создана CPM!
# Краткая шпаргалка для использования cpm.
py cpm locate # Поиск локальных пакетов и формирование индекса.
py cpm update # Отдельное обновление данных источников.
py cpm upgrade # Обновление пакетов.
py cpm install PACKAGE # Установить пакет "package".
py cpm remove PACKAGE # Удалить пакет "package".
Пойдём от простого к сложному.
Это наименьшая еденица cpm.
Пакет содержит в себе необходимые для работы файлы, а также описане packages.toml
.
Пример:
[cpm]
name= "Chio Packages Manager"
desc= "Управление пакетами Чио."
ver= "2.0 rf-V5"
build= 30
type= "pm"
В описание пакета входит:
PID
: Package IDname
: Имя пакетаdesc
: Краткое описание пакетаfull_desc
: Полное описание пакетаver
: Строковое обозначение версииbuild
: Номер сборки пакетаtype
: Тип пакетаgroups
: К каким группам принадлежит пакетauthors
: Авторы пакетаrequre
: Зависимости пакетаПосле попадания в Индекс:
used
: Кому требуется пакет как зависимостьfiles
: Словарь файлов пакета (путь: хеш)path
: Путь к директории пакетаurl
: Ссылка для загрузки файловmultiple
: Является ли пакет множеством (несколько пакетов в одном packages.toml
)Что можно сделать с пакетом (Package):
Сами по себе пакеты не так полезны. Список пакетов выстраивается в пакетный индекс.
Управляет пакетными индексами.
Router File Version (rf-Vx):
В cpm 2.1
добавлены новые параметры. cpm 2.0
и cpm 2.1
совместимы.
cpm 2.0+
): Изменены имена параметров пакета, и наименование файлаcpm 1.6 - 2.0
): Измененён синтаксис PID для описание источников пакетаcpm 1.5 - 1.6
), (+V2
): Списки файлов заменены на словари: путь - хеш. Это ускоряет обновленияcpm 1.3 - 1.6
): Приведён общий индекс, собираемый CPMЗдесь укаазны последние версии каждого этапка.
Для подрбного изучения изменений загляните в changelog.md
cpm-full 2.1 Разделение проакта:
cpm 2.0: Переработка проекта.
rf-V5
cpm 1.5: Продолжение разработки как отдельный проект.
rf-V3
cpm 1.3: разрабатывалась вместе с Чио как дополнительная утилита.
rf-V2
, частично rf-V3
Настройки cpm расположены в cpm_data/
.
├── package_base.toml # Параметры пакетов по умолчанию
├── repositories # Загруженные глобильные индексы
│ ├── chiohub.toml # Глобальный индекс CHiohub (pentergust/chiohub)
│ ├── {repo_name}.toml # Глобальный индекс repo_name (???/repo_name)
│ ├── ... # Тут могут быть другие глобальные индексф
│ └── cpm.toml # Глобальный индекс для Cpm (pentergust/cpm)
└── repositories.toml # Файл определния глобальных индексов
name = "package"
desc = "no desc"
full_desc = "no full desc"
ver = "1.0"
build = 1
type = "pm"
groups = []
authors = [ "Milinuri Nirvalen"]
require = []
used = []
path = ""
multiple = false
[files]
Если в файле packages.toml
нету некоторых параметров, они берутся из package_base
.
Вы можете изменить параметры package_base
на необходимые вам.
[chiohub]
url = "https://notabug.org/pentergust/ChioHub/raw/master/"
updated = 1665850118
[cpm]
url = "https://notabug.org/pentergust/cpm/raw/master"
updated = 1665850118
В файле репозиториев указаны источники для загрузки индексов. При желании вы можете исключать или наоборот добавлять свои репозитории.
Пример добавления репозитория:
[name]
url = "ссылка для загрузки файлов"
updated = 0
или:
echo "\n[name]\nurl= \"ссылка для загрузки файлов\"\nupdated= 0" >> cpm_data/repositories.toml