Solaris IPS: Image Packaging System

Overview

Solaris Image Packaging System

Introduction

The image packaging system (IPS) is a software delivery system with interaction with a network repository as its primary design goal. Other key ideas are: safe execution for zones and other installation contexts, use of ZFS for efficiency and rollback, preventing the introduction of incorrect or incomplete packages, and efficient use of bandwidth.

Prerequisites

IPS development requires additional external dependencies, which on Solaris 11 are provided by the list of packages found in src/pkg/external_deps.txt.

Build, Testing and Deployment

Once all dependency packages are installed, IPS source can be built by the following command:

  $ cd src; make install

The above will generate a proto directory under the root directory. Inside the proto directory, the build_i386 directory contains Python version-specific builds; root_i386 contains the complete build with the directory structure preserved.

Generally, testing of the new build can be done by the following command:

  $cd src/tests; sudo ./run.py -j 8

The above will run all test cases in 8 parallel processes. Other options are also available by typing ./run.py -h.

Tests running can also be done by using make:

  $cd src; sudo make test

Make targets test-27 and test-34 are available for testing specific Python versions.

IPS applications and libraries can be packaged and published into an IPS repository using:

  $cd src; make packages;

The above command generates IPS related packages and publishes them into packages/i386/repo on an x86-based system.

Usage Examples

  • Example 1 Create an Image With Publisher Configured

    Create a new, full image, with publisher example.com, stored at /aux0/example_root.

    $ pkg image-create -F -p example.com=http://pkg.example.com:10000 \
    /aux0/example_root
  • Example 2 Create an Image With No Publisher Configured

    Create a new, full image with no publishers configured at /aux0/example_root.

    $ pkg image-create -F /aux0/example_root
  • Example 3 Install a Package

    Install the latest version of the widget package in the current image.

    $ pkg install application/widget
    $ pkg set-publisher -g http://www.example.com/repo example.com
  • Example 5 Add and Automatically Configure a Publisher

    Add a new publisher with a repository located at /export/repo using automatic configuration.

    $ pkg set-publisher -p /export/repo

For more examples, please refer to List of References below or man page pkg(1) on Solaris operating system.

How to Contribute

Please refer to CONTRIBUTING for details.

License

The Image Packaging System is primarily distributed under the terms of the CDDL (Common Development and Distribution License), with a few portions covered by BSD-style or MIT-style licenses.

Refer to LICENSE-CDDL, LICENSE-CPIO (applies to src/modules/cpiofile.py), and LICENSE-MINISAT (applies to src/modules/solver/*) for details.

List of References

  1. Packaging and Delivering Software With the Image Packaging System in Oracle© Solaris 11.3

  2. Introducing the Basics of Image Packaging System (IPS) on Oracle Solaris 11

  3. Oracle Solaris 11 Cheatsheet for Image Packaging System

Owner
Oracle
Open Source at Oracle
Oracle
Conan - The open-source C/C++ package manager

Conan Decentralized, open-source (MIT), C/C++ package manager. Homepage: https://conan.io/ Github: https://github.com/conan-io/conan Docs: https://doc

Conan.io 6.5k Jan 05, 2023
OS-agnostic, system-level binary package manager and ecosystem

Conda is a cross-platform, language-agnostic binary package manager. It is the package manager used by Anaconda installations, but it may be used for

Conda 5.1k Dec 30, 2022
A set of tools to keep your pinned Python dependencies fresh.

pip-tools = pip-compile + pip-sync A set of command line tools to help you keep your pip-based packages fresh, even when you've pinned them. You do pi

Jazzband 6.5k Dec 29, 2022
For when Poetry just doesn't work.

Ballad For when Poetry just doesn't work. Have you tried setting up Poetry, but something doesn't work? Maybe you're... Trying to implement Github Act

BD103 4 Dec 06, 2021
Easy to use, fast, git sourced based, C/C++ package manager.

Yet Another C/C++ Package Manager Easy to use, fast, git sourced based, C/C++ package manager. Features No need to install a program, just include the

31 Dec 21, 2022
Simple Library Management made with Python

Installation pip install mysql-connector-python NOTE: You must make a database (library) & and table (books, student) to hold all data. Languange and

SonLyte 10 Oct 21, 2021
The Fast Cross-Platform Package Manager

The Fast Cross-Platform Package Manager part of mamba-org Package Manager mamba Package Server quetz Package Builder boa mamba Mamba is a reimplementa

Mamba 4k Dec 30, 2022
OS-agnostic, system-level binary package manager and ecosystem

Conda is a cross-platform, language-agnostic binary package manager. It is the package manager used by Anaconda installations, but it may be used for

Conda 5.1k Jan 07, 2023
Solaris IPS: Image Packaging System

Solaris Image Packaging System Introduction The image packaging system (IPS) is a software delivery system with interaction with a network repository

Oracle 57 Dec 30, 2022
If you have stars in your Pipfile and you don't want them, this project is for you!

unstar-pipfile If you have stars in your Pipfile, this project is for you! unstar-pipfile is a tool to scan Pipfile.lock and replace any stars in Pipf

2 Jul 26, 2022
A Poetry plugin for dynamically extracting the package version.

Poetry Version Plugin A Poetry plugin for dynamically extracting the package version. It can read the version from a file __init__.py with: # __init__

Sebastián Ramírez 264 Dec 22, 2022
Dotpkg - Package manager for your dotfiles

Dotpkg A package manager for your dotfiles. Usage First make sure to have Python

FW 4 Mar 18, 2022
Library Management System

Library Management Library Management System How to Use run main.py python file. python3 main.py Links Download Source Code: Click Here My Github Aco

Mohammad Dori 3 Jul 15, 2022
Workon - A simple project manager for conda, windows 10 and vscode

WORK ON A simple project manager for conda, windows 10 and vscode Installation p

Jesus Alan Hernandez Galvan 1 Jan 16, 2022
The delightful package manager for AppImages

⚡️ Zap The delightful package manager for AppImages Report bug · Request feature Looking for the older Zap v1 (Python) implementation? Head over to v1

Srevin Saju 368 Jan 04, 2023
An installation and dependency system for Python

Pyflow Simple is better than complex - The Zen of Python Pyflow streamlines working with Python projects and files. It's an easy-to-use CLI app with a

David O'Connor 1.2k Dec 23, 2022
Python Development Workflow for Humans.

Pipenv: Python Development Workflow for Humans [ ~ Dependency Scanning by PyUp.io ~ ] Pipenv is a tool that aims to bring the best of all packaging wo

Python Packaging Authority 23.5k Jan 06, 2023
Example for how to package a Python library based on Cython.

Cython sample module This project is an example of a module that can be built using Cython. It is an upgrade from a similar model developed by Arin Kh

Juan José García Ripoll 4 Aug 28, 2022
A PyPI mirror client according to PEP 381 http://www.python.org/dev/peps/pep-0381/

This is a PyPI mirror client according to PEP 381 + PEP 503 http://www.python.org/dev/peps/pep-0381/. bandersnatch =4.0 supports Linux, MacOSX + Wind

Python Packaging Authority 345 Dec 28, 2022
Python dependency management and packaging made easy.

Poetry: Dependency Management for Python Poetry helps you declare, manage and install dependencies of Python projects, ensuring you have the right sta

Poetry 23.2k Jan 05, 2023