mkpk
06.08.2022Најновији део дистрибуције Галеб, на којој радим последња два месеца, је систем за управљање пакетима mkpk. Његова основна идеја је слична идеји система mkbuild Хилтја Постхуме — систем за изградњу ОС‑а Plan9 под називом mk се користи за изградњу пакета из изворног кода. mkfile‑ови потребни за изградњу свих пакета који се користе у Галебу се налазе у једном репозиторијуму, и њиховом употребом је избегнут autoconf. Они су директно прилагођени изградњи конкретног пакета за Галеб.
Типична употреба mkpk‑а за, рецимо, изградњу и инсталирање текстуалног Gopher клијента sacc би била:
# mkpk update # опционо; преузима најсвежије верзије mkfile-ова # mkpk fetch sacc # преузима потребне архиве изворног кода и смешта их у # директоријум /src/pkg # mkpk build sacc # изграђује sacc-[верзија].{tar.xz,sha512} и смешта их у # директоријум /pkg # mkpk install sacc # инсталира добијену архиву простим распакивањем у /
Информација о инсталираним пакетима се чува у датотеци /pkg/pkgdb.tsv
, која
је обична датотека у формату TSV. Ово знатно олакшава преглед и манипулацију
тим информацијама. Рецимо, може се употребити мој програм table за
приказ података о свим инсталираним пакетима:
$ tsvtable /pkg/pkgdb.tsv
или се може употребити grep за издвајање само информација о појединачном пакету:
$ grep "$(printf '^sacc\t')" /pkg/pkgdb.tsv sacc 1.06-10-gb567fed 2022-08-06 18:38
Ово би требало да је једна од последњих етапа пре него што коначно отворим репозиторијум Галеба за јавност, наравно ако се изузме писање великог броја mkfile‑ова за све пакете који ће ући у његов састав. Ипак, сада се већ назире тај тренутак.