В Solaris 11 появился новый менеджер пакетов pkg. Он очень удобен, так как позволяет не только работать с пакетами (устанавливать, удалять, обновлять и т.д.), а и обновлять ОС.
В статье расскажу некоторые применения pkg.
1) Репозиторий.
Что бы посмотреть список доступных репозиториев (то есть тех мест, где будет происходить поиск покетов), делаем так:
# pkg publisher
PUBLISHER TYPE STATUS URI
solaris origin online http://pkg.oracle.com/solaris/release/
как видим, доступен пока только один репозиторий. Можно так же посмотреть информацию об этом “паблишере”:
# pkg publisher solaris Publisher: solaris Alias: Origin URI: http://pkg.oracle.com/solaris/release/ SSL Key: None SSL Cert: None Client UUID: 00000000-aa32-b42c-0000-000067120418 Catalog Updated: October 4, 2012 05:50:39 PM Enabled: Yes Signature Policy: verify
2) История.
Очень полезной и удобной функцией является история работы утилиты pkg. То есть мы можем увидеть все изменения, какие были сделаны через pkg:
# pkg history START OPERATION CLIENT OUTCOME 2011-10-21T02:21:16 set-property transfer module Succeeded 2011-10-21T02:21:16 add-publisher transfer module Succeeded 2011-10-21T02:21:16 refresh-publishers transfer module Succeeded 2011-10-21T02:21:16 image-create transfer module Succeeded 2011-10-21T02:21:26 rebuild-image-catalogs transfer module Succeeded 2011-10-21T02:21:35 set-property transfer module Succeeded 2011-10-21T02:21:35 install transfer module Succeeded 2011-10-21T02:36:44 update-publisher transfer module Succeeded 2012-02-22T16:18:42 uninstall transfer module Succeeded 2012-02-25T08:30:59 refresh-publishers pkg Succeeded 2012-02-25T08:30:59 install pkg Succeeded 2012-02-25T08:31:03 rebuild-image-catalogs pkg Succeeded 2012-02-25T08:31:43 install pkg Failed 2012-02-25T08:33:57 refresh-publishers pkg Succeeded 2012-02-25T08:33:57 install pkg Failed 2012-02-25T08:34:03 rebuild-image-catalogs pkg Succeeded 2012-06-04T15:29:44 install pkg Failed 2012-06-04T15:30:43 install pkg Succeeded 2012-06-22T22:10:58 install pkg Succeeded 2012-06-22T22:39:11 install pkg Succeeded 2012-07-31T23:12:21 install pkg Succeeded 2012-07-31T23:14:45 install pkg Succeeded 2012-08-05T18:57:08 install pkg Succeeded 2012-10-03T19:08:15 add-publisher pkg Succeeded 2012-10-03T19:08:16 rebuild-image-catalogs pkg Succeeded 2012-10-03T19:08:16 refresh-publishers pkg Succeeded 2012-10-03T19:08:41 install pkg Succeeded 2012-10-04T20:49:38 add-publisher pkg Failed 2012-10-04T20:50:11 update-publisher pkg Succeeded 2012-10-04T20:50:12 refresh-publishers pkg Succeeded 2012-10-04T20:50:18 rebuild-image-catalogs pkg Succeeded 2012-10-04T20:50:35 update pkg Succeeded
Это краткий вывод. Для длинного вывода используйте ключ ‘-l’:
#pkg history -l ... Operation: install Outcome: Succeeded Reason: None Client: pkg Version: a6782843ee0c User: root (0) Boot Env.: solaris Boot Env. UUID: 8a630c59-9b43-ee3d-8fd3-9e3065d89ba4 New Boot Env.: None New Boot Env. UUID: (None) Snapshot: (None) Start Time: 2012-07-31T23:12:21 End Time: 2012-07-31T23:13:32 Total Time: 0:01:11 Command: /usr/bin/pkg install pkg:/developer/build/autoconf@2.63-0.175.0.0.0.2.537 Start State: Solver: [ Variables: 477 Clauses: 2913 Iterations: 1 State: Succeeded] Timings: [phase 1: 0.364, phase 2: 0.049, phase 3: 0.364, phase 4: 0.000, phase 5: 0.000, phase 6: 0.000, phase 7: 0.009, phase 8: 0.615, phase 9: 0.000, phase 10: 0.552, phase 11: 0.013, phase 12: 0.309] Maintained incorporations: pkg://solaris/consolidation/ldoms/ldoms-incorporation@0.5.11,5.11-0.175.0.0.0.1.0:20111012T230609Z pkg://solaris/consolidation/gfx/gfx-incorporation@0.5.11,5.11-0.175.0.0.0.2.0:20111019T144752Z pkg://solaris/consolidation/vpanels/vpanels-incorporation@0.5.11,5.11-0.175.0.0.0.1.778:20111012T230640Z pkg://solaris/consolidation/admin/admin-incorporation@0.5.11,5.11-0.175.0.0.0.2.0:20111019T144751Z ...
3) Обновление ОС.
ОС обновляется очень просто:
#pkg update --accept
при этом автоматически создастся новый be (boot envirement), который сразу станет активным при следующей загрузке ОС. Аналогично обновятся все зоны и в них так же будет создан be для каждой свой. Об этом и другом будет проинформировано в конце обновления.
А так можно посмотреть пакеты, которые нуждаются в обновлении:
#pkg update -nv