Woof - "сборщик Puppy"

стр. частично обновлена 22 марта 2010

Замечание: Пожалуйста, следите за моим блогом http://bkhome.org/blog/?viewCat=Woof
для отслеживания изменений Woof и анонса следующего релиза.

Сборочная система Woof находится в разработке. Хотя эта статья утверждает, что Puppy live-CD может быть собран из двоичных пакетов Debian, Ubuntu, Arch, Slackware, T2 или Puppy, вам необходимо следить за анонсами, чтобы быть уверенными, что эта возможность была проверена. Для некоторых сборок вы оказываетесь в ситуации - «сами по себе».

Вступление

В ноябре 2008 я решил отступить от моей роли лидера проекта Puppy Linux и позволить другим энергичным участникам сообщества Puppy Linux взять под контроль разработку будущих версий Puppy.

После выпуска Puppy 4.1.2 я взял «таймаут» чтобы заняться другими вещами. Мне нужно было свободное время для исследования новых идей … первая из них называется Woof.

Основная причина

До недавнего времени Puppy имел сборочную систему Puppy Unleashed, которая имела доступ в репозитарий PET-пакетов и собирала live-CD с выбранными вами пакетами. Такой подход создавал проблемы:

  1. Pet-пакеты - это сильно урезанные бинарные пакеты. Часто выходит, что много работы при создании PET-пакета тратится на «обрезку жира».
  2. Наличие репозитария бинарных PET-пакетов означает, что мы также «юридически обязаны» поддерживать репозитарий с исходниками.
  3. Апгрейт всех пакетов инфрастуктуры ядра, таких как glibc, gcc, gtk, cups, ghostscript и других системных библиотек и создание новых PET-пакетов и 'devx' -файл потом берет все в работу - занимает очень много времени.

В некоторых ранних версиях Puppy мы использовали двоичные пакеты от другого дистрибутива. Например серия Puppy3 основана на двоичных пакетах Slackware. Однако, я делал каждый шаг вручную, создавая каждый PET-пакет практически файл за файломи затем потратил несколько месяцев на доводку перед финальным релизом.

Решение

Я давно мечтал о «волшебном скрипте», который может скачивать пакеты некоторых других дистрибутивов, обрезать их прямо в Puppy-размер, затем собирать Puppy Linux live-CD - и делать все это полностью автоматически.

В итоге, свободный от управления проектом Puppy, я нашел время для осуществления этой мечты. Так появился Woof.

Что делает Woof:

  1. Скачивает пакеты других дистрибутивов, и мы не должны их нигде хранить (хотя, в некоторых случаях дистрибутив может не иметь подходящих пакетов и мы все еще нуждаемся в некоторых своих PET-пакетах).
  2. Полностью автоматически собирает iso-файл с Puppy live-CD, с выбранными вами пакетами.
  3. Полностью автоматически собирает файл 'devx' SFS (который нужен для поддержки C/C++/Vala/Genie/Fortran компиляторов).
  4. Поддержка нескольких дистрибутивов.
  5. Легкий апгрейт до новой версии.
  6. Конечный продукт на выходе - Puppy Linux.

Несколько дистрибутивов

Дизайн Woof разработан настолько гибким, что могут быть обработаны пакеты из любого дистрибутива. На сегодняшний день Woof поддерживает Debian, Ubuntu, Slackware, Arch, T2 и Puppy. Я рассматриваю возможность добавить один из дистрибутивов, основанных на RPM.

Легко обновляется

Я считаю эту возможность особенно интересной. Есть релизы Ubuntu - Intrepid, Jaunty, Karmic, и др. Puppy может быть собран из чего угодно, что сейчас актуально. Когда они выпускают свой очередной релиз, Woof-у нужно только имя этого релиза и Woof будет скачивать все пакеты и собирать новый Puppy Linux. Возможно, пару часов займет правка имен некоторых пакетов, но идея в том, что разработчик в один день может получить новый релиз Puppy.

Конечный результат

… это Puppy Linux! Я имею в виду, что в итоге вы получаете нечто быстрое, компактное и со всеми удобствами Puppy Linux, ничего не теряя. Даже собирая из пакетов Ubuntu мы получаем live-CD в 99 Мб (или около того), быстрый Puppy, который находится в оперативной памяти, все приложения Puppy и все инструменты и знакомый рабочий стол.

Как скачать Woof

В своей привычке изобретать колесо, я сделал свою собственную систему контроля версий Bones. Очень интересно на самом деле, вы можете прочитать о ней здесь:

http://bkhome.org/bones/index.html

Последние версии Puppy или паплеты, особенно мой Quirky, вероятно, будут содержать bones-скрипт (смотрите в /usr/sbin). Если его там нет или вы хотите получить последнюю версию bones, смотрите здесь:

http://distro.ibiblio.org/pub/linux/distributions/quirky/pet_packages-quirky/

… просто скачайте и кликните install. Для использования в не-Puppy дистрибутиве - наберите 'tar -zxf bones-xxx.pet' и установите вручную.

Как скачать (проверить) последнюю версию Woof насисано на web-странице Bones, повторяю здесь:

> mkdir woof-tree
> cd woof-tree
> bones setup
   You you will be asked to enter a couple of parameters:
   Username: mrperson (any name you want to give yourself)
   Download URL: http://bkhome.org/bones/woof/
> bones download

… вы можете повторять этот последний шаг всякий раз, когда вы хотите обновить до последней Woof.

Но перед тем, как вы броситесь скачивать и использовать Woof, есть несколько вещей, о которых стоит подумать …

Подготовка

Вы можете скачать Woof, как описано выше, но прежде подумайте о …

  1. Уровень знаний.
    Вы должны уметь работать с командной строкой linux и разбираться в linux-разделах жесткого диска. Если вы «беженец с Windows» без этих знаний, то вам надо сперва немного подучиться (или просто скачать готовый файл Puppy live-CD).
  2. Подходящие условия для сборки.
    Вы должны скачать Woof в раздел Linux. Разделы Windows/DOS FAT или NTFS не подходят! Раздел должен иметь много свободного места, я рекомендую 10 Гб.
  3. Операционная система.
    У вас должно быть запущено окружение Puppy Linux версии 4.3 или более поздней. В других дистрибутивах могут отсутствовать некоторые вещи, например недостаточные или отсутствующие утилиты 'dpkg-deb' и 'lzma' - не только две эти, скорее всего будет много чего не хватать в других дистрибутивах.
  4. Доступ в интернет.
    Поскольку требуется загружать много пакетов, лучше всего подойдет широкополосное соединение. Возможно работа и через dialup при наличии огромного терпения! Всего вам придется прокачать около 550 Мб - нет, я забираю свои слова про dialup назад!

Сборка

Если вы скачали Woof, вы можете видеть шесть скриптов: 0Pre, 0setup, 1download, 2createpackages, 3builddistro, 4quirkybuild
Что вы будете делать, запуская каждый из них, исключая 0pre, который только для T2…

0pre Создание файла - базы данных по пакетам.
Это специальный препроцесс-скрипт только для T2. См. коментарии в скрипте для информации. См. также 'readme' в директории support/. Web-страница T2: http://bkhome.org/t2/index.html
0setup Скачивание файлов - баз данных по пакетам.
Откройте терминал в директории 'woof' и наберите:
#./0setup
1download Скачивание пакетов
# ./1download
2createpackages Сборка основных урезанных пакетов Puppy
Это займет 2-3 часа, в зависимости от мощности вашего PC. Рекомендуется не очень старый компьютер с CPU >= 1.5GHz и >= 256MB RAM.
# ./2createpackages
3builddistro Сборка Puppy live-CD
Это дает сборку в директории 'sandbox3' а также iso-файл live-CD. Вы также найдете индивидуальные собранные файлы и файл 'devx'.
# ./3builddistro
4quirkybuild Специальный постпроцессинг-скрипт для моего Quirky Linux. Не используйте этот скрипт для обычных сборок Puppy. См. мою страничку о Quirky: http://bkhome.org/quirky/index.html

Однако, я разработал графический интерфейс для случая, когда он упрощает использование Woof, особенно если вы новичок в нем. Читайте о скрипте 'woof_gui' …

Графический интерфейс - GUI builder

На время написания он функционирует, но со многими ограничениями. См снапшоты:


После загрузки последнего Woof ознакомтесь с последней информацией по GUI builder.

Кто должен использовать Woof ?

Это важный вопрос. Какой-нибудь «Linux newbie» может читать эту страницу и думать что Woof выглядит довольно интересно. Да, это так, но требуется определенный уровень опыта работы с командной строки Linux и знания разделов жесткого диска.

На самом деле это нетрудно, поскольку GUI получает все новые возможности и создание своей системы делается проще и проще.

Но даже, если вы знаете, как обращаться с Woof, лучший ли это выбор для вас? Существует другая альтернатива для создания пользовательского Live-CD, и это программа CD-Remaster (см. меню «Setup» в Puppy). Это еще более простой способ сделать его, хотя и несколько более ограниченный. Конечно, вариант с CD-Remaster лучше для тех, у кого меньше знаний о Linux на уровне командной строки.

Подавляющее большинство пользователей не нуждаются ни в Woof ни в CD-Remaster. Один из доступных live-CD собранных мной или другим Puppy-разработчиком - это все, что нужно большинству людей. У пользователей есть Puppy Package Manager и SFS файлы для добавления любой дополнительной функциональности.

Это те, кто хочет построить свой собственный Puppy или что-то на его основе будут разбираться с Woof или CD-Remaster.

Будущее

Бинарная совместимость с популярным дистрибутивом имеет одно очевидное преимущество: доступ ко всем пакетам в своих хранилищах. Ну, мы работаем с любой версией Puppy, но когда основные файлы Puppy построены из этого дистрибутива, то мы имеем зависимости уже на месте. Самое главное, что у нас есть пакеты, которые использовались для компиляции других пакетов - другими словами, избежать несоответствия библиотек, которые были настроены по-разному и неправильными версиями.

Кроме того, если определенный пакет имеет зависимости для установки, они будут доступны на хранилищах. Мы не должны идти через очень утомительный и часто неудачный процесс компиляции зависимостей из исходников.

Новый Puppy Package Manager (PPM) был полностью переписан мной для работы в мульти-дистрибутивной среде. PPM может обрабатывать пакеты от любого из дистрибутивов, которые поддерживает Woof.

Список задач на будущее:

  1. Автоматическое управление зависимостями в скриптах Woof.
  2. Сборка файлов локали для выбранных вами языков.
  3. Документация в виде отдельного SFS-файла.
  4. Много новых функций для GUI.

Еще я думаю, что Woof приведет к появлению целой новой партии «папплетов» !

 
articles/woof-puppy-builder.txt · Последние изменения: 01.03.2016 в 18:18 (внешнее изменение)
 
За исключением случаев, когда указано иное, содержимое этой вики предоставляется на условиях следующей лицензии:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki