📦 Package manager utility for Slackware: https://dslackw.gitlab.io/slpkg/
Find a file
2023-04-13 23:56:19 +03:00
bin Updated for coding style 2023-03-28 09:25:06 +03:00
completion Added repo-info command 2023-04-03 13:36:26 +03:00
configs Updated for comments 2023-04-13 23:56:19 +03:00
filelists Updated for multilib 2023-04-06 20:46:49 +03:00
man Updated for version 4.7.8 2023-04-13 17:40:16 +03:00
slackbuild Added repositories file 2023-03-29 14:51:44 +03:00
slpkg Updated for comments 2023-04-13 23:45:15 +03:00
tests Updated for tests 2023-04-13 12:36:05 +03:00
tools Updated generate script 2023-03-05 16:30:31 +02:00
.gitignore Added .idea folder 2022-05-04 21:35:21 +03:00
ChangeLog.txt Updated for proxies support #160 2023-04-13 12:29:08 +03:00
install.sh Updated for year 2023-01-11 20:03:28 +02:00
LICENSE Added setup.cfg file 2022-06-28 17:56:05 +03:00
README.rst Updated the readme 2023-04-13 23:51:12 +03:00
requirements.txt Updated for optional deps 2023-04-13 17:33:21 +03:00
setup.cfg Updated for optional deps 2023-04-13 17:33:21 +03:00
setup.py Added setup.cfg file 2022-06-28 17:56:05 +03:00

.. contents:: Table of Contents:


About
-----

Slpkg is a software package manager that installs, updates and removes packages on `Slackware <http://www.slackware.com/>`_-based systems.
It automatically calculates dependencies and figures out what things need to happen to install packages. 
Slpkg makes it easier to manage groups of machines without the need for manual updates.

Slpkg works in accordance with the standards of the `SlackBuilds.org <https://www.slackbuilds.org>`_ organization to build packages. 
It also uses the Slackware Linux instructions for installing, upgrading or removing packages.

.. image:: https://gitlab.com/dslackw/images/raw/master/slpkg/slpkg_package.png
    :target: https://gitlab.com/dslackw/slpkg


Requirements
------------

.. code-block:: bash

    SQLAlchemy >= 1.4.46
    pythondialog >= 3.5.3
    progress >= 1.6

Install
-------

Install it from the official third-party `SlackBuilds.org <https://slackbuilds.org/repository/15.0/system/slpkg/>`_ repository or directly from source:

.. code-block:: bash

    $ tar xvf slpkg-4.7.7.tar.gz
    $ cd slpkg-4.7.7
    $ ./install.sh

Screenshots
-----------

.. image:: https://gitlab.com/dslackw/images/raw/master/slpkg/slpkg_install.png
    :target: https://gitlab.com/dslackw/slpkg

.. image:: https://gitlab.com/dslackw/images/raw/master/slpkg/slpkg_remove.png
    :target: https://gitlab.com/dslackw/slpkg

.. image:: https://gitlab.com/dslackw/images/raw/master/slpkg/slpkg_dependees.png
    :target: https://gitlab.com/dslackw/slpkg


Usage
-----

.. code-block:: bash

    $ slpkg --help
      USAGE: slpkg [OPTIONS] [COMMAND] [FILELIST|PACKAGES...]

      DESCRIPTION:
        Package manager utility for Slackware.

      COMMANDS:
        -u, update                    Update the package lists.
        -U, upgrade                   Upgrade all the packages.
        -c, check-updates             Check for news on ChangeLog.txt.
        -I, repo-info                 Prints the repositories information.
        -g, configs                   Edit the configuration file.
        -L, clean-logs                Clean dependencies log tracking.
        -T, clean-data                Clean all the repositories data
        -D, clean-tmp                 Deletes all the downloaded sources.
        -b, build [packages...]       Build only the packages.
        -i, install [packages...]     Build and install the packages.
        -d, download [packages...]    Download only the scripts and sources.
        -R, remove [packages...]      Remove installed packages.
        -f, find [packages...]        Find installed packages.
        -w, view [packages...]        View packages from the repository.
        -s, search [packages...]      Search packages from the repository.
        -e, dependees [packages...]   Show which packages depend.
        -t, tracking [packages...]    Tracking the packages dependencies.

      OPTIONS:
        -y, --yes                     Answer Yes to all questions.
        -j, --jobs                    Set it for multicore systems.
        -o, --resolve-off             Turns off dependency resolving.
        -r, --reinstall               Upgrade packages of the same version.
        -k, --skip-installed          Skip installed packages.
        -E, --full-reverse            Full reverse dependency.
        -S, --search                  Search packages from the repository.
        -n, --no-silent               Disable silent mode.
        -p, --pkg-version             Print the repository package version.
        -G, --generate-only           Generates only the SLACKBUILDS.TXT file.
        -P, --parallel                Download files in parallel.
        -B, --bin-repo=[REPO]         Set a binary repository.
        -z, --directory=[PATH]        Download files to a specific path.

        -h, --help                    Show this message and exit.
        -v, --version                 Print version and exit.

   If you need more information try to use slpkg manpage.
   Extra help for the commands, use: 'slpkg help [command]'.
   Edit the config file in the /etc/slpkg/slpkg.toml or 'slpkg configs'.


How to start
------------

If you are going to use only the `SlackBuilds.org <https://slackbuilds.org/>`_ repository, you don't need to edit the
:code:`/etc/slpkg/repositories.toml` file, otherwise edit the file and set :code:`true` the repositories you want.

The second step is to update the package lists and install the data to the database, just run:

.. code-block:: bash

    $ slpkg update

or for binary repositories:

.. code-block:: bash

    $ slpkg update --bin-repo='*'

Now you are ready to start!

To install a package from the `SlackBuilds.org <https://slackbuilds.org/>`_ or `Ponce <https://cgit.ponce.cc/slackbuilds/>`_ repository, run:

.. code-block:: bash

    $ slpkg install <package_name>

or from a binary repository:

.. code-block:: bash

    $ slpkg install <package_name> --bin-repo=<repo_name>

You can install a whole repository with the command:

.. code-block:: bash

    $ slpkg install '*' --bin-repo=<repository_name> --resolve-off

Note: Apply the option '--resolve-off' to speed up the process, if the repository has no references to the dependencies.

To remove a package with the dependencies:

.. code-block:: bash

    $ slpkg remove <package_name>

If you wan to search a package from all binaries repositories, run:

.. code-block:: bash

    $ slpkg search <package_name> --bin-repo='*'

Edit the configuration :code:`/etc/slpkg/slpkg.toml` file:

.. code-block:: bash

    $ slpkg configs


For further information, please read the manpage:

.. code-block:: bash

    $ man slpkg


Configuration files
-------------------

.. code-block:: bash

    /etc/slpkg/slpkg.toml
        General configuration of slpkg

    /etc/slpkg/repositories.toml
        Repositories configurations

    /etc/slpkg/blacklist.toml
        Blacklist of packages


Repositories
------------

The supported repositories, please read the repositories configuration file.

- `Slackbuilds <https://slackbuilds.org/>`_ repository.
- `Ponce <https://cgit.ponce.cc/slackbuilds/>`_ repository.
- `Slackware <https://slackware.uk/slackware/slackware64-15.0/>`__ repository.
- `Slackware extra <https://slackware.uk/slackware/slackware64-15.0/extra/>`__ repository.
- `Slackware patches <https://slackware.uk/slackware/slackware64-15.0/patches/>`__ repository.
- `Alien <http://slackware.uk/people/alien/sbrepos/15.0/x86_64/>`_ repository.
- `Multilib <https://slackware.nl/people/alien/multilib/15.0/>`_ repository.
- `Restricted <https://slackware.nl/people/alien/restricted_sbrepos/15.0/x86_64/>`_ repository.
- `Gnome <https://reddoglinux.ddns.net/linux/gnome/41.x/x86_64/>`_ repository.
- `Msb <https://slackware.uk/msb/15.0/1.26/x86_64/>`_ repository.
- `Csb <https://slackware.uk/csb/15.0/x86_64/>`_ repository.
- `Conraid <https://slack.conraid.net/repository/slackware64-current/>`_ repository.
- `Slackonly <https://packages.slackonly.com/pub/packages/15.0-x86_64/>`_ repository.
- `Salix OS <https://download.salixos.org/x86_64/slackware-15.0/>`_ repository.
- `Salix OS extra <https://download.salixos.org/x86_64/slackware-15.0/extra/>`_ repository.
- `Salix OS patches <https://download.salixos.org/x86_64/slackware-15.0/patches/>`_ repository.
- `Slackel OS <http://www.slackel.gr/repo/x86_64/current/>`_ repository.
- `Slint OS <https://slackware.uk/slint/x86_64/slint-15.0/>`_ repository.


Multilib packages
-----------------

Slackware for x86_64 - multilib packages & install instructions:

- Please read the file `README <https://gitlab.com/dslackw/slpkg/-/raw/master/filelists/multilib/README>`_ you will find in the folder `multlib <https://gitlab.com/dslackw/slpkg/-/tree/master/filelists/multilib>`_.

Donate
------

If you feel satisfied with this project and want to thanks me make a donation.

.. image:: https://gitlab.com/dslackw/images/raw/master/donate/paypaldonate.png
   :target: https://www.paypal.me/dslackw

Report bugs
-----------

Please report any issue here: `Issues <https://gitlab.com/dslackw/slpkg/-/issues>`_


Copyright
---------

- Copyright 2014-2023 © Dimitris Zlatanidis.
- Slackware® is a Registered Trademark of Patrick Volkerding. 
- Linux is a Registered Trademark of Linus Torvalds.