hbs
To polecenie służy do budowania pakietów. Jako argument można (trzeba) podać mu
jakąś opcję i ewentualnie nazwę/nazwy katalogów z pakietami do zbudowania.
Jeśli wywoła się je bez tego argumentu, to hbs spróbuje odnaleźć
jakiś plik *.plan w aktualnym katalogu i spróbuje wstępnie go przeparsować
- ale nie zacznie budować pakietu. Polecenie to przyjmuje następujące opcje:
-bb -- wywołuje budowanie binarnego pakietu.
-bs -- wywołuje budowanie pakietu źródłowego (jak hbspack)
-ba -- buduje pakiet binarny a potem źródłowy
-u -- rozpakowuje pakiet źródłowy (jak hbspack)
-d -- interpretuje URL-e w [files] i pobiera je z sieci
-o -- przy budowaniu pakietu źródłowego pomija pliki pobrane z sieci
-noprep -- pomija wykonywanie [prep]
-nobuild -- pomija wykonywanie [build]
-noinst -- pomija wykonywanie [inst]
-noclean -- nie usuwa plików z /var/lib/hbs ani BUILD/.hbs*
-purge -- usuwa cały podkatalog BUILD/
-h, --help -- wyświetla wszystkie opcje razem z opisem
Najczęstszym zastosowaniem jest "hbs -bb" wykonane w katalogu pakietu do zbudowania.
hbsinst
Tym poleceniem instaluje się pakiety HBS (pliki z rozszerzeniem *.hbi).
Należy podać mu nazwę/nazwy plików do zainstalowania. Przy instalowaniu
Hierophant sprawdza, czy instalowane pakiety nie konfliktują ze sobą lub
z pakietami już zainstalowanymi, czy nie będą nadpisywać nawzajem swoich
plików, czy są spełnione wszystkie ich zależności, oraz czy ew. instalowanie
nie spowoduje downgrade-u jakiegoś pakietu (upgrade i ponowne instalowanie
pakietu w tej samej wersji są automatycznie akceptowane).
hbsremove
Tym poleceniem usuwa się pakiety HBS. Należy podać mu nazwy pakietów do
usunięcia (samych nazw, bez numerów wersji!), a Hierophant (po sprawdzeniu
czy usunięcie tych pakietów nie zerwie żadnych zależności) je usunie.
hieroq
Tym poleceniem można odpytywać bazę danych. Podaje się mu nazwy pakietów do
odpytania a w rezultacie otrzymuje się ich nazwę i wersję (lub błąd jeśli
pakiet nie był zarejestrowany). Można też podać ewentualne dalsze opcje.
Opcjami tymi mogą być:
-i -- wyświetla więcej informacji o pakiecie (rozmiar, datę instalacji, opis)
-l -- wyświetla spis plików należących do pakietu
-R -- wyświetla listę bibliotek wymaganych przez pakiet
-P -- wyświetla listę bibliotek dostarczanych przez pakiet
-f -- po tej opcji podaje się jedną lub więcej nazw plików, a hieroq podaje nazwy pakietów do których te pliki należą (lub '???' jeśli pliki nie są zarejestrowane w bazie HBS)
-a -- opcja ta powoduje operowanie na wszystkich zainstalowanych pakietach
-V -- uruchamia tryb weryfikacji - każdy plik zarejestrowany w pakiecie
zostanie poddany kontroli - sprawdzone zostanie, czy plik ma oryginalne
prawa dostępu oraz czy jego mtime nie jest nowszy od daty instalacji
pakietu. To pozwala znaleźć pliki zmodyfikowane po zainstalowaniu pakietu
lub pliki którym przypadkowo(?) zmieniono uprawnienia. Jeśli nie wykryto
żadnych nieprawidłowości to tryb weryfikacji nic nie wypisze. Jeśli jednak
znajdą się odstępstwa od oczekiwanej normy hieroq wypisze nazwę konkretnego
pliku poprzedzonej kodem złożonym z czterech kropek. Każda anomalia
spowoduje zamienienie którejś z kropek na inny znak. Jeśli odkryto zmianę
właściciela pliku, to w kodzie pojawi się duża litera "O". Jeśli zmieniono
grupę, to pojawi się "G". Jeśli czas modyfikacji pliku jest nowszy niż czas
instalacji pakietu, to pojawi się "T". Jeśli zmieniła się maska bitowa
uprawnień pliku, to pojawi się "M". Jeśli pliku w ogóle nie znaleziono
(został usunięty), to pojawi się ciąg "miss". Jak widać wzorowałem się na
RPM-ie, z tym że ograniczyłem liczbę testów do minimum.
hbspack
Tego polecenia można użyć po zbudowaniu pakietu. Podaje się mu ścieżki
dostępu do "katalogów źródłowych", a on je pakuje (pomijając podkatalogi
BUILD/) w archiwa tar o nazwie formatu "NAME-VERSION-RELEASE.hbi"
i umieszcza w katalogu /archiwa/HBS/. Używam go by magazynować stworzone
pakiety źródłowe w jednym miejscu. Nazwa katalogu docelowego jest określona
na szczycie skryptu hbspack, więc można ją łatwo dostosować do własnych
potrzeb. Jeśli poda się dodatkowo opcję "-e", to po stworzeniu
archiwum *.hbi hbspack usunie katalog źródłowy.
Uruchamiając go z opcją -u można odwrócić proces - można mu wtedy podać nazwy plików *.hbi, a zostaną one rozpakowane do katalogu $HOME/hbs/.
hbspack zostanie zapewne niedługo całkowicie wchłonięty przez hbs i zniknie.
Hierophantize
To prosty skrypt który konwertuje istniejącą bazę RPM do formatu
Hierophanta. Mi pozwolił na bardzo łagodne przejście z RPM na Hiero.
Konwertuje praktycznie wszystkie informacje dotyczące pakietów, tak że
wynikowa baza jest pełnosprawna - ma informacje o zależnościach,
wielkościach pakietów, datach instalacji, zawiera skrypty postinstalacyjne
itp. Można też przekonwertować sobie bazę RPM aby potem poeksperymentować na
niej za pomocą hieroq.
hbshelper
To jedyna binarka w systemie HBS. Nie jest przeznaczona do uruchamiania
samodzielnego, bo jak nazwa wskazuje jest to "helper" - a więc polecenie
czysto pomocnicze. Niektóre czynności wykonywane przez HBS dają się
zoptymalizować jeśli wypchnąć je do binarnego kodu - lub po prostu redukują
zależność od zewnętrznych poleceń shella. Do tego właśnie celu służy HBS.
Wymaga jedynie glibc i obsługuje serię opcji widocznych po uruchomieniu tej
binarki bez żadnych argumentów. Wykorzystywana jest w praktycznie wszystkich
pozostałych poleceniach HBS.