ChangeBlog  •  Archiwum  •  Kategorie  •  Artykuły  •  Galeria  •  Czytelnicy  •  Rupieciarnia
RSS wpisów  |  RSS komentarzy
Polecenia zawarte w pakiecie Hierophanta

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.