| Both sides previous revisionPrevious revisionNext revision | Previous revision |
| stalin_repository [2024/09/13 16:44] – [Концепция] uf4n | stalin_repository [2024/09/16 19:46] (current) – uf4n |
|---|
| ====== Gulag - Репозиторий для сборки пакетов ПО без внешних зависимостей ====== | ====== VyatLUG - Репозиторий для сборки пакетов ПО без внешних зависимостей ====== |
| |
| ===== Концепция ===== | ===== Концепция ===== |
| |
| Gulag - это репозиторий пакетов исходных кодов, подготовленных для сборки бинарных файлов со статической линковкой. Из каждого пакета, включённого в этот репозиторий, должны автоматически собираться бинарные deb и rpm пакеты. За данную задачу отвечает программа StaLin. Оптимальный формат для пакетов исходного кода - предмет исследования, однако для начала это может быть обыкновенный тарбол. | VyatLUG - это репозиторий пакетов исходных кодов, подготовленных для сборки бинарных файлов со статической линковкой. Из каждого пакета, включённого в этот репозиторий, должны автоматически собираться бинарные deb и rpm пакеты. За данную задачу отвечает программа StaLin. Оптимальный формат для пакетов исходного кода - предмет исследования, однако для начала это может быть обыкновенный тарбол. |
| |
| Самостоятельные программы должны быть написаны на языках Си и Си++, причём код библиотек должен быть включён в дерево исходного кода каждой программы, благодаря чему при сборке можно обойтись без cmake/autotools. Единственная допустимая run-time зависимость для любой программы в системе - ядро. Недопустимы программы на скриптовых языках,, а также на языках, с экосистемой, представляющую из себя комбаин для разрешения зависимостей между библиотеками разных версий, к тому же качающий их с серверов корпораций, желающих одного - подсадить разработчика на свою иглу. Гудбай, Python, Rust, Go и прочий маздай. | Самостоятельные программы должны быть написаны на языках Си и Си++, причём код библиотек должен быть включён в дерево исходного кода каждой программы, благодаря чему при сборке можно обойтись без cmake/autotools. Единственная допустимая run-time зависимость для любой программы в системе - ядро. Недопустимы программы на скриптовых языках,, а также на языках, с экосистемой, представляющую из себя комбаин для разрешения зависимостей между библиотеками разных версий, к тому же качающий их с серверов корпораций, желающих одного - подсадить разработчика на свою иглу. Гудбай, Python, Rust, Go и прочий маздай. |
| |
| Такой подход к сборке бинарних пакетов ПО позволит: | Такой подход к сборке бинарних пакетов ПО позволит: |
| - Избежать ада зависимостей (dependency hell), который предполагает | 1. Избежать ада зависимостей (dependency hell), который предполагает: |
| a. необходимость разрешения длинных, циклических и конфликтующих зависимостей | |
| b. необходимость обновлять те программы, в обновлении которых у пользователя нет объективной потребности. Например, из-за того, что старая версия программы стала несовместимой с новой версией разделяемой библиотеки, которая подтянулась в качестве зависимости при установке другой программы | a. необходимость разрешения длинных, циклических и конфликтующих зависимостей |
| - Легко переносить ПО на любую аппаратную платформу благодаря переносимости кода на Си/Си++ | |
| - Собирать ПО с максимальной возможной оптимизацией машинного кода, использую соответствующие параметры компилятора при сборке конечных бинарный deb или rpm пакетов. Гудбай, Генту - дистрибутив с пакетным менеджером, написанным на Python, который как пить дать перекомпилирует тебе половину пакетной базы перед установкой одной новой программы. | b. необходимость обновлять те программы, в обновлении которых у пользователя нет объективной потребности. Например, из-за того, что старая версия программы стала несовместимой с новой версией разделяемой библиотеки, которая подтянулась в качестве зависимости при установке другой программы |
| - Ликвидировать зоопарк дистрибутивов, использующих разные высокоуровневые пакетные менеджеры. | |
| - Предать забвению flatpak, snap etc. | 2. Легко переносить ПО на любую аппаратную платформу благодаря переносимости кода на Си/Си++ |
| | |
| | 3. Собирать ПО с максимальной возможной оптимизацией машинного кода, использую соответствующие параметры компилятора при сборке конечных бинарный deb или rpm пакетов. Гудбай, Генту - дистрибутив с пакетным менеджером, написанным на Python, который как пить дать перекомпилирует тебе половину пакетной базы перед установкой одной новой программы. |
| | |
| | 4. Ликвидировать зоопарк дистрибутивов, использующих разные высокоуровневые пакетные менеджеры. |
| | |
| | 5. Предать забвению flatpak, snap etc. |
| | |
| | ===== Фронт работ ===== |
| | * Посмотреть дистрибутив Stali от Suckless.org |