PISI package manager of Pardus linux written in Python. The original development branch by the original author.
Python Shell Makefile Other


PISI - Packages Installed Succesfully as Intended

PISI package manager of Pardus linux distribution. The original development branch by the original author. It is prononunced as "pee-see".


PISI is the next-gen package manager initially developed for the PARDUS distribution in 2005. In Turkish, PISI means "kitty", and like a kitty, it is featureful and small. Multiple Linux distributions have adopted or tried PISI.

Some of its distinctive features:

  • Implemented in python
  • Efficient and small
  • Package sources are written in XML and python
  • Fast database access implemented with Berkeley DB
  • Integrates low-level and high-level package operations (dependency resolution)
  • Framework approach to build applications and tools upon
  • Comprehensive CLI and a user-friendly qt GUI (distributed separately)
  • Extremely simple package construction

PISI is quite portable and appropriate for embedded systems, and is a comprehensive packaging solution for any OS environment beyond Pardus derivatives.

Package contents:

  • build: build scripts
  • doc: documentation
  • pisi: PISI python package sources
  • po: translations
  • scripts: additional PISI tools
  • tmp: temporary directory used for testing
  • tests: unit tests, stress tests and test scripts
  • tools: misc. tools used by developers

Basic usage:

PISI is self-documenting. To see help about basic usage, simply issue

$ pisi --help

Usage: pisi [options] <command> [arguments]

where <command> is one of:

        add-repo (ar) - Add a repository
           build (bi) - Build PISI packages
                check - Verify installation
                clean - Clean stale locks
configure-pending (cp) - Configure pending packages
    delete-cache (dc) - Delete cache files
          emerge (em) - Build and install PISI source packages from repository
                graph - Graph package relations
             help (?) - Prints help for given commands
           index (ix) - Index PISI files in a given directory
                 info - Display package information
         install (it) - Install PISI packages
  list-available (la) - List available packages in the repositories
 list-components (lc) - List available components
  list-installed (li) - Print the list of all installed packages  
    list-pending (lp) - List pending packages
       list-repo (lr) - List repositories
    list-sources (ls) - List available sources
   list-upgrades (lu) - List packages to be upgraded
     rebuild-db (rdb) - Rebuild Databases
          remove (rm) - Remove PISI packages
     remove-repo (rr) - Remove repositories
          search (sr) - Search packages
     search-file (sf) - Search for a file
     update-repo (ur) - Update repository databases
         upgrade (up) - Upgrade PISI packages

Use "pisi help <command>" for help on a specific command.

  --version   show program's version number and exit
  -h, --help  show this help message and exit
$ pisi help install
install (it): 
Install PISI packages

Usage: install <package1> <package2> ... <packagen>

You may use filenames, URI's or package names for packages. If you have
specified a package name, it should exist in a specified repository.

You can also specify components instead of package names, which will be
expanded to package names.

  --version             show program's version number and exit
  -h, --help            show this help message and exit
  -B, --ignore-comar    bypass comar configuration agent
  -S, --bypass-safety   bypass safety switch
  -n, --dry-run         do not perform any action, just show what would be
  -E, --ignore-dependency
                        do not take dependency information into account
  --reinstall           Reinstall already installed packages
                        Ignore file conflicts
  --ignore-build-no     do not take build no into account.
  -D DESTDIR, --destdir=DESTDIR
                        change the system root for pisi commands
  -y, --yes-all         assume yes in all yes/no queries
  -u USERNAME, --username=USERNAME
  -p PASSWORD, --password=PASSWORD
  -v, --verbose         detailed output
  -d, --debug           show debugging information
  -N, --no-color        print like a man
                        Keep bandwidth usage under specified KB's

PISI has an advanced CLI tool that allows you to access both low-level and high-level package operations easily. You can arrange repos, view package DB's, build, install, upgrade, remove, and search packages, install packages from sources as in Gentoo distribution with an equivalent emerge command.

You may find extra tools in the scripts directory:

$ ls -G scripts
calc-build-order.py       fix_old_metadata_files.py repostats.py
cat-db.py                 lspisi                    residuary-binary.py
check-source-repo.py      missing-binary.py         rmcomp-source-repo.py
convert_history.py        pisimedia                 unpisi
fetchAll.py               pisish
find-lib-deps.py          repo-diff.py

You may also try pisish, a PISI CLI that works like a shell:

$ pisish
Welcome to the interactive PISI shell.
Type "help" to see a list of commands.
To end the session, type "exit".
You can run system commands by prefixing with '!' as in '!ls'.
Copyright 2006 (c) Pardus.


Eray Ozkural, PhD