System: Haiku License: Creative Commons LicenseAttribution-NonCommercial 4.0 International (CC BY-NC 4.0) |
Il sistema operativo Haiku è al momento nello stato di alpha, e nonostante la stabilità raggiunta è ancora in una fase di continuo cambiamento; infatti basta scaricare una delle nightly image per rendersi conto delle varie novità rispetto all'ultima release ufficiale l'alpha 4.1 . Una delle principali novità è l'introduzione del package management, incluso per la prima volta nella nightly image hrev46113.
HPKG è il formato utilizzato per i package in Haiku ed è stato realizzato affinché il package-fs di Haiku possa accedere velocemente alla struttura dei file e contenuti in modo da facilitare il montaggio delle cartelle contenenti questi package.
Quello che accade se montate una cartella piena di file *.hpkg è che il package-fs combina tutti questi package per costruire una gerarchia di file e cartelle (di sola lettura) e tale gerarchia è live nel senso che cambia immediatamente aggiungendo o togliendo i package.
Tutto ciò ha richiesto di modificare la struttura gerarchica in cui erano prima organizzati i dati sotto Haiku.
Prima del Package Management la struttura del filesystem di Haiku si ispirava a BeOS che a sua volta ricalcava quella dei sistemi POSIX, con una directory principale /boot e varie sotto directory: /boot/apps
/boot/common
/boot/develop
/boot/home
/boot/optional
/boot/preferences
/boot/system
Essenzialmente rispetto a BeOS era cambiato per motivi di copyright /boot/beos che in Haiku è diventato /boot/system , inoltre era stata aggiunta la cartella common mentre erano state tolte le cartelle demos e tmp.
In Haiku quello che riguardava il sistema era contenuto in /boot/system mentre quello che riguardava l'utente in /boot/home tuttavia nulla impediva all'utente di mettere le mani in /boot/system cosa che non è più possibile con l'arrivo del Package Management.
Con la comparasa del Package Management in Haiku la situazione è la seguente: /boot/home
/boot/system
Quindi attualmente la directory principale ha solo due sottocartelle e /boot/system ora è una cartella di sola lettura.
Per quanto riguarda la directory /boot/home la struttura è rimasta identica /boot/home/config
/boot/home/Desktop
/boot/home/mail
/boot/home/queries
mentre per quanto riguarda la directory /boot/system alla struttura originaria /boot/system/add-ons
/boot/system/apps
/boot/system/bin
/boot/system/boot
/boot/system/data
/boot/system/demos
/boot/system/documentation
/boot/system/lib
/boot/system/preferences
/boot/system/serves
sono state aggiunte le seguenti cartelle /boot/system/non-packaged
/boot/system/package-links
/boot/system/packages
/boot/system/settings
/boot/system/var
ed inoltre sono state spostate sotto /boot/system anche le cartelle
/boot/system/develop
/boot/system/optional
A partire dalla revisione del sistema hrev46391 è possibile fare in modo che un package non sia estratto in fase di boot dal package file system. Come abbiamo visto alcune directory sono di sola lettura per cui non è possibile disattivare un driver semplicemente cancellandolo. Per risolvere il problema esiste una Blacklist per crearla inserite un file di testo dal nome 'packages' in /boot/system/settings (nel caso di package di sistema) oppure in /boot/home/config/settings/global (nel caso di package utente). Il testo da inserire nel file è il seguente:
Package 'packagename' {
EntryBlacklist {
'entrypath'
...
}}
Dove 'packagename' è il nome del package senza versione ed 'entrypath' è il percorso dove è installato il package, in questo modo il package-fs ingnorerà i package inseriti nella blacklist ed essi non appariranno nel file system. Ad esempio se vogliamo eliminare il driver broadcom570x , dovremo inserire in /boot/system/settings il file packages con il seguente testo:
Package haiku {
EntryBlacklist {
add-ons/kernel/drivers/bin/broadcom570x
}}
al riavvio il package verrà montato di nuovo ed il file indicato verrà ignorato dal package-fs
Un package (file con estensione .hpkg) può essere installato automaticamente utilizzando HaikuDepot una nuova applicazione presente nel sistema, oppure una volta scaricato dal web può essere installato inserendolo in /boot/home/config/packages , se il package inserito contiene un applicazione al riavvio comparirà in /boot/home/config/apps. Naturalmente continua ad essere possibile l'installazione di applicazioni contenute in file .zip che possono essere decompressi dove volete in /boot/home/
Cos'è un Haiku Package (.hpkg) ?
Si tratta di un formato di file creato per un efficiente uso da parte dell'Haiku package file system e si ispira al formato XAR anche se non contiene un XML per il TOC. Un file hpkg consiste di 4 parti:
Header che identifica il file come un hpkg e fornisce l'accesso alle altre sezioni
Heap fornisce un contenitore per dati arbitrari
TOC contiene la struttura dei dati con riferimenti a quanto contenuto nell'heap
Package Attributes è una sezione simile alla TOC che specifica i meta data del package
In sostanza un file hpkg è un archivio come un file zip o tar che in più contiene informazioni sul package in una sezione separata.
Esempio: per creare un file .hpkg dell'applicazione BePodder bisogna innanzitutto creare una "nuova cartella" contenente la sottocartella "apps" ed eventuali altre sottocartelle se necessarie, poi inserire in apps l'applizazione BePodder. A questo punto bisogna creare il file ".PackageInfo" nella cartella princiale "nuova cartella". La sintassi esatta del file ".PackageInfo" la trovate nel PM wiki http://dev.haiku-os.org/wiki/PackageManagement/BuildingPackages
Se apriamo un .hpkg con Expander il file ".PackageInfo" apparirà più o meno così:
name BePodder
version 1.2.9-1
architecture x86_gcc2
summary "A media aggregator"
description "BePodder is a media aggregator (and more) for Haiku..."
packager "Giuseppe Gargaro <Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo. >"
vendor "Funkyideasoftware"
copyrights "2007-2013 Funkyideasoftware"
licenses "MIT"
provides {
BePodder = 1.2.9-1
}
requires {
haiku >= r1~alpha4_pm-1
}
user-settings-files {
"settings/" directory
}
La licenza MIT esiste già sotto /system/data/licenses/ ma potete comunque crearne una vostra se necessario.
Per finire creiamo il file .hpkg aprendo un terminale e dando i seguenti comandi (che volendo possono essere inseriti in uno script):
cd /boot/home/Desktop/Nuova\ cartella/
package create -b bepodder.hpkg
package add bepodder.hpkg apps
Una volta creato il file bepodder.hpkg per installare l'applicazione basterà inserire questo package in ~/config/packages e l'applicazione BePodder apparirà in ~/config/apps/
Made available by BeSly, the Haiku, BeOS and Zeta knowledge base.