OpenIndiana uses the Image Packaging System - IPS, pkg(5) , the same package management system as Oracle Solaris 11.
Oracle is continuing practice of providing well written manuals: http://download.oracle.com/docs/cd/E19963-01/html/820-6572/index.html
To find more information on IPS/ pkg(5), using man command, use:
$ man -s 5 pkg
The command line package manager command is 'pkg
'.
To find more information about pkg(1) , using man command, use:
$ man pkg
In IPS parlance, we are talking about adding publishers in place of term repositories.
Package management is performed using accounts with elevated Role Based Access Control (RBAC) privileges (using pfexec
or sudo
before commands shown below).
$ pfexec bash # pkg set-publisher -g repository_url repository_name
# pkg set-publisher -G old_repository_url -g new_repository_url repository_name
# pkg set-publisher \ -G http://pkg.openindiana.org/hipster-2015 \ -g https://pkg.openindiana.org/hipster openindiana.org
# pkg publisher PUBLISHER TYPE STATUS P LOCATION openindiana.org origin online F https://pkg.openindiana.org/hipster/ hipster-encumbered origin online F https://pkg.openindiana.org/hipster-encumbered/
'OpenIndiana hipster' repositories (as of February, 2017)
openindiana.org | https://pkg.openindiana.org/hipster | Hipster primary package repository |
hipster-encumbered | https://pkg.openindiana.org/hipster-encumbered | Hipster encumbered license packages |
localhostoih | http://sfe.opencsw.org/localhostoih | 3rd party Spec Files Extra (SFE) packages |
# pkg search -rp package_name
# pkg install package_name
# pkg update package_name
# pkg update -v -r
Option pkg -r updates all Solaris Zones , if not issued, thay are kept unupdated untill -r command is issued on update or they are updated separately.
Option 2: Install software from SmartOS repositories via pkgin
All illumos-based operating systems, like OmniOS, Openindiana and SmartOS can use the repository from Joyent/SmartOS. Its main advantage is that you find there a lot of very up to date packages.
A list of available software: http://pkgsrc.joyent.com/packages/SmartOS/ in folder http://pkgsrc.joyent.com/packages/SmartOS/ (or http://pkgsrc.smartos.org/packages/illumos/).
If you want to install software via pkgin
(installs every package to /opt
), you need to (console as root
):
add /opt/local/{s,}bin
where all software is installed to your PATH
(in your shell, maybe save to your .profile
):
PATH=/opt/local/sbin:/opt/local/bin:$PATH export PATH
install the bootstrap-loader
: (use the loader according to your repository, see http://pkgsrc.joyent.com/packages/SmartOS/bootstrap/)
:; curl https://pkgsrc.joyent.com/packages/SmartOS/bootstrap/bootstrap-2016Q4-x86_64.tar.gz | gtar -zxpf - -C /
update the repository database:
:; pkgin -y update
install the needed package, for example – Apache 2.4.6:
:; pkgin -y install apache-2.4.6
or, just for newest 2.4:
:; pkgin -y install apache-2.4
For more information see:
You need a compiler like gcc
; download the sources, switch to the folder with your sources (make the content of your 'sourcefolder' executable recursively) and compile via:
:; cd /sourcefolder :; ./configure :; make :; make install
You might want to first look into ./configure --help
to see what options are available for building the software – quite often, some features useful for you might notbe a general choice enabled by default, or might require other dependency software to be available first in binary or source form, in order to compile.
For building software from NetBSD pkgsrc from sources, see page: pkgsrc in OI .
For contributing to oi-userland, see page: Building with oi-userland
11 Comments
Anonymous
Brilliant :|
Anonymous
In case of no info at any point of this document, please refer to the FreeBSD handbook instead, I suppose...?
Anonymous
guys, seriously, are you joking?
Anonymous
The project is what, 12 months old now, and still basically no documentation? Come on guys, how do you expect people to use this OS at all without even basic documentation on installation, pkg management etc.?
Anonymous
Many irrelevant complaints, I'm following the oracle's manual and it works, I think by now there are priorities other than write again something that is already explained. If a linux newbie like me can follow it, I'm pretty sure you guys can too.
Anonymous
Documentation such as a manual is essential in not just learning from, it tells everyone where the product is in the scheme of things. Referring to Oracle for documentation relating to OI just makes one have less confidence with OI itself. Look at the FreeBSD site documentation levels are really good and gives people confidence to try FreeBSD and its derivatives.
Anonymous
Documentation would be the same as Solaris 10 as these os are based on that product. Search Oracle for Solaris documentation.
David J. Kordsmeier
Is anyone opposed to at least posting the man page up here? That seems to be the best 'help'. I'll take a look at what the freebsd guys have for package management.
Marco van Lienen
FreeBSD is pretty much a source-based OS and it has the ports tree to compile software from (/usr/ports/)
Installing, upgrading, recompiling ports using different make arguments can be done via various "port" management tools such as sys-mgmt/portmaster (that is a port itself which needs to be installed first).
One can also install binary packages via the current pkg_add(1) interface (part of the base system).
Currently a new package manager called pkgng is in development and is in its beta stage.
Philipp Speck
I'm using IPS to install software from the global zone in a local zone. For example:
Because the SmartOS repo has more actual packages I want to use pkgin. What's the best practise to install software inside a zone? Do I have to install pkgin in every zone or is it possible to install packages from the global zone?
Philipp Speck
pkgin inside a zone
Maybe there is another/better solution for this, but here is how I got it to work.
root@global:~# pkg -R /zones/zone1/root install nano
root@global:~# zlogin zone1
root@zone1:~# nano /etc/resolv.conf
--
domain domain.tld
search domain.tld
nameserver 192.168.XXX.XXX
--
root@zone1:~# cp /etc/nsswitch.dns /etc/nsswitch.conf
root@zone1:~# export PATH=/opt/local/sbin:/opt/local/bin:$PATH
root@zone1:~# cd /
root@zone1:/# curl -k http://pkgsrc.joyent.com/packages/SmartOS/bootstrap/bootstrap-2013Q3-x86_64.tar.gz | gzcat | tar -xf -
root@zone1:/# mkdir -p /var/db/pkgin
root@zone1:/# pkgin update