Κατασκευή διανομής openSUSE με το KIWI



Έχουμε δει στο παρελθόν τον τρόπο κατασκευής διανομής με το SUSE Studio. Την ίδια διαδικασία μπορούμε να την κάνουμε με το εργαλείο KIWI.
Και στις δυο περιπτώσεις, πρέπει να γνωρίζουμε τι θέλουμε να εγκαταστήσουμε αλλά και αυτά που θα εγκαταστήσουμε, τι εξαρτήσεις έχουν. Στην περίπτωση του SUSE Studio, η επιλογή που θα κάνετε για γραφικό περιβάλλον, πιθανό να μην εγκαταστήσει όλα τα προγράμματα που θα θέλατε. Ο λόγος που γίνεται αυτό είναι για να κρατήσουν σε μικρά επίπεδα την χωρητικότητα της διανομής που θα δημιουργήσετε. Και στις δυο περιπτώσεις, σας συνιστούμε αφού εγκαταστήσετε την διανομή που φτιάξατε, να ξανά εγκαταστήσετε μερικά ή όλα τα patterns, ώστε να εγκατασταθούν όλες οι εξαρτήσεις.

Εδώ θα δούμε τι θα χρειαστείτε για να χρησιμοποιήσετε το KIWI αλλά και πως χρησιμοποιείται.

ΕΓΚΑΤΑΣΤΑΣΗ KIWI
Καταρχήν πρέπει να εγκαταστήσετε το KIWI στον υπολογιστή σας.
1. Προσθέστε το αποθετήριο (ως υπερχρήστες με την su) με την εντολή (σε μια γραμμή):

zypper ar http://download.opensuse.org/repositories/Virtualization:/Appliances/openSUSE_12.2/ Virtualization:Appliances

Να σημειώσουμε ότι το παραπάνω αποθετήριο ισχύει για την 12.2. Εσείς βάλτε ως αριθμό, την δικιά σας έκδοση.

Κάντε και μια ανανέωση των αποθετηρίων με την εντολή

zypper refresh

2. Εγκαταστήστε το KIWI με την παρακάτω εντολή (σε μια γραμμή):

zypper in kiwi kiwi-doc kiwi-templates kiwi-desc-vmxboot kiwi-desc-usbboot kiwi-desc-isoboot kiwi-desc-xenboot kiwi-desc-oemboot kiwi-tools kiwi-config-openSUSE createrepo squashfs


ΠΡΟΕΤΟΙΜΑΣΙΑ ΑΡΧΕΙΩΝ ΡΥΘΜΙΣΕΩΝ
Αυτό το κομμάτι είναι που θα σας απασχολήσει πολύ ώρα. Τώρα πρέπει να βρείτε τι θέλετε να εγκαταστήσετε. Αφού αποφασίσετε, πρέπει να φτιάξετε ένα αρχείο config.xml και ένα αρχείο config.sh τα οποία θα αποθηκεύσετε σε ένα φάκελο και θα χρησιμοποιηθούν αργότερα από τις εντολές του KIWI.
Για να βοηθηθείτε λιγουλάκι, σας θυμίζω ότι μπορείτε να δείτε σε ένα αρχείο, τι έχετε εγκατεστημένο στο σύστημά σας. Απλά δώστε την εντολή:

rpm -qa > installed-software.bak

[ως υπενθύμιση, αν θέλετε να εγκαταστήσετε σε νέο σύστημα όλα τα προγράμματα που είχατε, χρησιμοποιήστε το αρχείο installed-software.bak ως εξής: sudo zypper install $(cat installed-software.bak) ]

Τώρα που έχετε την λίστα με τα προγράμματα που έχετε εγκατεστημένα, καιρός να φτιάξετε το config.xml

Δείτε ένα απλό xml που δημιούργησα ως παράδειγμα:

<?xml version="1.0" encoding="utf-8"?>

<image schemaversion="5.5" name="iefstathios-12.2">
    <description type="system">
        <author>Efstathios Iosifidis</author>
        <contact>iosifidis@opensuse.org</contact>
        <specification>openSUSE 12.2 Live system for CD/DVD and USB Stick</specification>
    </description>
    <preferences>
        <type image="iso" primary="true" boot="isoboot/suse-12.2" hybrid="true" flags="clic"/>
        <version>2.5.2</version>
        <packagemanager>zypper</packagemanager>
        <rpm-check-signatures>false</rpm-check-signatures>
        <rpm-force>true</rpm-force>
        <locale>en_US</locale>
        <keytable>us.map.gz</keytable>
    </preferences>
    <users group="root">
        <user pwd="$1$wYJUgpM5$RXMMeASDc035eX.NbYWFl0" home="/root" name="root"/>
    </users>
    <users group="users">
        <user pwd="$1$wYJUgpM5$RXMMeASDc035eX.NbYWFl0" home="/home/tux" name="tux"/>
    </users>
    <repository type="yast2">
        <source path="opensuse://11.2/repo/oss/"/>
    </repository>
    <packages type="image" patternType="plusRecommended" patternPackageType="plusRecommended">
        <package name="bootsplash"/>
        <package name="bootsplash-branding-openSUSE" bootinclude="true" bootdelete="true"/>
        <package name="firefox"/>
        <package name="gdm"/>
        <package name="gfxboot-branding-openSUSE" bootinclude="true" bootdelete="true"/>
        <package name="ifplugd"/>
        <package name="iputils"/>
        <package name="kernel-default"/>
        <package name="preload"/>
        <package name="sax2"/>
        <package name="vim"/>
        <package name="xorg-x11-server"/>
        <opensusePattern name="base"/>
    </packages>
    <packages type="vmware">
    </packages>
    <packages type="bootstrap">
        <package name="filesystem"/>
        <package name="glibc-locale"/>
    </packages>
</image>

Να θυμίσω ότι το pwd παραπάνω βγαίνει αν δώσετε στο τερματικό σας την εντολή:
echo -n "password" | sha1sum

 όπου password διαλέγετε το δικό σας συνθηματικό.

Το config.sh αρχείο, πρέπει να έχει τον κώδικα:

#!/bin/bash
#================
# FILE          : config.sh
#----------------
# PROJECT       : OpenSuSE KIWI Image System
# COPYRIGHT     : (c) 2006 SUSE LINUX Products GmbH. All rights reserved
#               :
# AUTHOR        : Marcus Schaefer <ms@suse.de>
#               :
# BELONGS TO    : Operating System images
#               :
# DESCRIPTION   : configuration script for SUSE based
#               : operating systems
#               :
#               :
# STATUS        : BETA
#----------------
#======================================
# Functions...
#--------------------------------------
test -f /.kconfig && . /.kconfig
test -f /.profile && . /.profile

#======================================
# Greeting...
#--------------------------------------
echo "Configure image: [$kiwi_iname]..."

#======================================
# Setup baseproduct link
#--------------------------------------
suseSetupProduct

#======================================
# Activate services
#--------------------------------------
suseActivateDefaultServices
suseInsertService boot.device-mapper

#======================================
# SuSEconfig
#--------------------------------------
baseUpdateSysConfig /etc/sysconfig/windowmanager DEFAULT_WM gnome
baseUpdateSysConfig /etc/sysconfig/displaymanager DISPLAYMANAGER gdm
baseSetRunlevel 5
suseConfig

#======================================
# Umount kernel filesystems
#--------------------------------------
baseCleanMount

exit 0

ΧΡΗΣΗ ΤΟΥ KIWI
Τώρα είναι το πιο εύκολο κομμάτι. Το μόνο που έχετε να κάνετε είναι να περιμένετε. Ουσιαστικά είναι 2 εντολές που πρέπει να χρησιμοποιήσετε.

Καταρχήν δημιουργήστε τους 2 καταλόγους εργασίας με τις παρακάτω εντολές (ως υπερχρήστες)

mkdir -p /tmp/myiso
mkdir -p /tmp/myiso-result


Επόμενο και τελευταίο βήμα είναι να δώσετε τις εντολές:

kiwi --prepare /dir_with_config_files --root /tmp/myiso

Όπου /dir_with_config_files είναι ο κατάλογος που έχετε αποθηκευμένα τα αρχεία config.xml και config.sh.

Η 2η είναι η:

kiwi --create /tmp/myiso --type iso -d /tmp/myiso-result


Αφού τελειώσει, θα έχετε ένα ISO έτσι όπως το θέλατε.

Υπάρχουν τρόποι να αλλάξετε το προεπιλεγμένο artwork. Επίσης μπορείτε να προσθέσετε δικά σας αρχεία ή αποθετήρια. Μπορείτε να προσθέσετε αποθετήρια του OBS.
Για περισσότερες πληροφορίες δείτε:

1. Portal KIWI
2. openSUSE-KIWI Image System coockbook
3. KIWI documentation (PDF)

Δεν υπάρχουν σχόλια

Από το Blogger.