[Solaris] Быстрая правка pkg-пакета

Если пакет в формате pkg.

Распаковываем пакет в папку test

$ pkgtrans mysql-utilities-commercial-1.6.5-solaris11.pkg test/

Внутри пакета находится папка reloc с иерархическим содержимым файлов пакета, файл pkginfo с описанием пакета и pkgmap – файлом, и манифестом pkgmap.

После правки содержимого, заворачиваем обратно в пакет pkg:

$ pkgtrans -s /path/which/contains/pkg_folder pkg_name

Пример:

# ls test/
mysql-utilities
# pkgtrans -s test mysql-utilities.pkg

The following packages are available:
  1  mysql-utilities     MySQL Utilities 1.6.5 (Commercial), Collection of utilities used for maintaining and administering MySQL servers
                         (all) 1.6.5

Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]: 
Transferring  package instance
# ls test
mysql-utilities      mysql-utilities.pkg

Если пакет в репозитории.

Распаковываем пакет в текущую папку:

$ pkgrecv -s /export/pkg/ -d /path/to/extract --raw library/python/tornado-27

Вместо локального пути (в данному случае это /export/pkg) может быть и репозиторий (http://ips.com). Если не указать конкретную версию пакета, то будут скачаны и распакованы все версии данного пакета в такое иерархии: /path/to/extract/pkg_name/version. Правим необходимые файлы и обратно заливаем в репозиторий:

$ pkgsend publish -s /export/pkg -d library%2Fpython%2Fpycurl_27/7.43.0.5%211.4-11.4.46.0.1.119.2%3A20220622T132707Z/ library%2Fpython%2Fpycurl_27/7.43.0.5%211.4-11.4.46.0.1.119.2%3A20220622T132707Z/manifest

то есть, в таком формате:

$ pkgsend publish -s <repo_path> -d <pkg_path> <path_to_pkg_manifest>

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься.