Welcome to my collection of Solaris 11 packages. Here you’ll find IPS-packaged open source utilities and tools that I have been using for my own personal projects, and have made available in the hope that they may prove useful to other people. They are currently available for the x86 platform only (contact me if you’re interested in Sparc versions – see the “Feedback” section below) and are provided in Solaris 11 native IPS format. You can browse the repositories directly at http://pkg.markround.com.
Overview & Goals
These packages are designed never to interfere with the base system, or packages from another source such as OpenCSW. While some of these packages could have been relocated to
/usr, others are an updated version of a package already included in Solaris 11, such as my package of GNU screen (with the “vertical split” patch included). As such, they all install under a base of
/opt/mar, and use the “mar” prefix in the package FMRI.
There are currently two repositories (or release “branches”) to pick from :
stable : These contain packages that have been tested together and shouldn’t have any major packaging or compilation issues (see disclaimer below).
dev : This repository will contain more up to date versions of the packages, but they may be in a state of flux while I work on bugs, packaging problems and other issues. This is one step downstream from my internal repository, so most bugs should have been ironed out by the time they get here, but you should still only use this if you don’t mind occasional breakage.
These packages have been compiled with options that made the most sense for my usage (and hopefully, yours too!). For example, the screen package is built as a basic 32-bit binary; the NginX webserver is 64-bit and has many default modules enabled. They have been built on a base of Solaris 11.1, and should work on all subsequent versions. My aim is not to effectively become another distro, with my own version of components such as OpenSSL and so on; where possible, packages therefore use libraries that ship as part of Solaris 11.
All packages should be usable “out of the box”, and anything that runs as a daemon ships with a suitable SMF manifest that will be auto-imported and enabled when the package is installed. Configuration files are set up with reasonable defaults, and local modifications to files under /etc will be preserved during upgrades. See below for a demonstration.
Simply add “markround” as a IPS publisher :
$ pkg set-publisher -g http://pkg.markround.com/stable markround
Or, to use the dev repository :
$ pkg set-publisher -g http://pkg.markround.com/dev markround
You will need to add
$PATH environment variable. Simply drop this into your
~/.profile or equivalent :
PATH=$PATH:/opt/mar/bin:/opt/mar/sbin export PATH
Switching between repositories
To switch between the dev and stable repositories, just repoint the origin :
$ pkg set-publisher -O http://pkg.markround.com/stable markround
Or to switch to the dev repository :
$ pkg set-publisher -O http://pkg.markround.com/dev markround
Searching for a package
Either use the web interfaces available at http://pkg.markround.com, or try the following commands (assuming you’re using the stable repository):
$ pkgrepo -s http://pkg.markround.com/stable list $ pkgrepo -s http://pkg.markround.com/stable info $ pkg search <search criteria> $ pkg list -g http://pkg.markround.com/stable
Install a package
If a package name does not “clash” with an OS-provided package, you can simply install it using it’s shortened name. e.g.
$ pkg install nginx
Install a package that supersedes a OS-provided package
You will need to use the full FMRI of the package. For example, GNU screen already exists in Solaris 11 as
terminal/screen, so you would need to use :
$ pkg install pkg://markround/mar/terminal/screen
Install a package with a service
As mentioned above, packages that run as a daemon ship with a corresponding SMF manifest and example configuration file. So, to install and run the redis key-value store, you would enter the following command :
$ pkg install redis
And you should then see the package install, create the “redis” user account and bring the service online:
$ id -a redis uid=6(redis) gid=2(bin) groups=2(bin) $ svcs -a | grep redis online 10:16:08 svc:/network/redis:default $ redis-cli 127.0.0.1:6379> ping PONG
If the service failed to start, check the output of
svcs -xv, which will usually contain some relevant information and a link to a log file that should help you diagnose the problem. Most likely this will be an issue with the default configuration on your system, e.g. binding to ports already in use and so on.
Uninstall / upgrade a package
Packages should clear up behind themselves, and will never touch your configuration files so you can simply run :
$ pkg uninstall <package name>
$ pkg upgrade <package name>
Locally-modified configuration files will be preserved, and any new package-provided defaults will be installed as
<config file>.new for you to review and merge as necessary.
If you have any feedback, comments, or package requests, you can leave a comment below or email me at packages [at] markround [dot] com (address obfuscated to avoid spam.)
These packages are provided in the hope that they will be useful to others. However, the following big scary all-caps disclaimer applies :
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR DISTRIBUTOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.