mirror of
https://gitlab.com/dslackw/slpkg.git
synced 2025-01-10 20:01:54 +01:00
Merge branch 'develop'
This commit is contained in:
commit
7c09c8497a
10 changed files with 80 additions and 129 deletions
|
@ -1,3 +1,7 @@
|
||||||
|
3.9.8 - 12/05/2022
|
||||||
|
Updated:
|
||||||
|
- Stderr error output to auto-install packages
|
||||||
|
|
||||||
3.9.8 - 12/05/2022
|
3.9.8 - 12/05/2022
|
||||||
Bugfix:
|
Bugfix:
|
||||||
- Flag (--repos=) TypeError: exceptions must derive from BaseException
|
- Flag (--repos=) TypeError: exceptions must derive from BaseException
|
||||||
|
|
87
EXAMPLES.md
87
EXAMPLES.md
|
@ -1,92 +1,5 @@
|
||||||
# Slpkg
|
# Slpkg
|
||||||
|
|
||||||
|
|
||||||
##### Usage
|
|
||||||
|
|
||||||
Before you start to use slpkg need to run '`slpkg update`' to synchronize the lists of packages,
|
|
||||||
also every time you add a new repository.
|
|
||||||
|
|
||||||
To add or remove repositories you have to edit the file '`/etc/slpkg/repositories.conf`'
|
|
||||||
or run '`slpkg repo-enable`' (python3-pythondialog required).
|
|
||||||
|
|
||||||
Add custom repositories with the command '`slpkg add-repo <repository name> <URL>`' and
|
|
||||||
after run '`slpkg update`' to update package list.
|
|
||||||
|
|
||||||
View list of repositories with the command `slpkg repo-list` or get repository information
|
|
||||||
with the command '`slpkg repo-info <repository>`'.
|
|
||||||
|
|
||||||
Update slpkg itself simply run '`slpkg update slpkg`', and slpkg check from GitLab repository if the
|
|
||||||
new version is available.
|
|
||||||
|
|
||||||
Checking packages health with the command '`slpkg health`' and slpkg check if the files missing
|
|
||||||
from the package file list.
|
|
||||||
|
|
||||||
View the dependencies status with the command '`slpkg deps-status`' or draw image map dependencies
|
|
||||||
with the additional option '`--graph=[image]`'.
|
|
||||||
|
|
||||||
Manage '`.new`' configuration files with the command '`slpkg new-config`', like remove, overwrite,
|
|
||||||
merge etc.
|
|
||||||
|
|
||||||
If you have already downloaded the script and the source code you can build the package with the
|
|
||||||
command '`slpkg -a <sbo_script.tar.gz> <sources>`'.
|
|
||||||
|
|
||||||
Manage the packages in the blacklist with the command '`slpkg -b <packages> --add or --remove`'.
|
|
||||||
|
|
||||||
Add the SBo packages to the queue with the command '`slpkg -q <packages> --add or --remove`' and
|
|
||||||
manage as build, install or build and install with the command '`slpkg build or install or
|
|
||||||
build-install`'. This is very useful if you want to install multiple packages together, suffice to
|
|
||||||
add in the right order if there are dependent packages.
|
|
||||||
|
|
||||||
View list of the packages from specific repository with command '`slpkg -l <repository>`'.
|
|
||||||
Combine with the command '`grep`' to catch the results you want.
|
|
||||||
|
|
||||||
Check and upgrade your distribution or upgrade your packages with the command '`slpkg -c <repository>
|
|
||||||
--upgrade`'. Don't forget to update the packages lists before (for the '`slack`' repository it's not
|
|
||||||
necessary). This command except upgrade the packages will fix the packages with the broken
|
|
||||||
dependencies. Switch off the automatic resolve dependencies with the additional option '`--resolve-off`'.
|
|
||||||
Use '`--checklist`' option to help you to choose easy the packages. For advanced users, the
|
|
||||||
option '`--skip`' give them more power (see manpage).
|
|
||||||
|
|
||||||
The most famous command is '`slpkg -s <repository> <packages>`', this command downloads, build and
|
|
||||||
installs packages and resolve all the dependencies or switch off resolve with the option
|
|
||||||
'`--resolve-off`'. Also the additional option '`--case-ins`' help you find the packages with case
|
|
||||||
insensitive. Two new arguments, help you to rebuild '`--rebuild`' or reinstall '`--reinstall`' packages.
|
|
||||||
The last one argument '`--patches`' help you to switch in the '`patches/`' directory, only for the slack
|
|
||||||
repository.
|
|
||||||
|
|
||||||
Tracking the dependencies of a package with command '`slpkg -t <repository> <package>`', displays a
|
|
||||||
package dependency tree and also shows to you which ones are installed on your system events.
|
|
||||||
Check if the packages used from other packages with the option '`--check-deps`' or draw image map
|
|
||||||
dependencies with the additional option '`--graph=[image]`'.
|
|
||||||
|
|
||||||
Get information description of a package with the command '`slpkg -p <repository> <package>`' and
|
|
||||||
change the color of the text with the additional flag '`--color=[]`'.
|
|
||||||
|
|
||||||
View a SBo package page on your terminal with command `slpkg -n <package>` and then manage
|
|
||||||
multiple choices such read, download, build, install etc.
|
|
||||||
|
|
||||||
If you want to find a package of all the repositories, this command will solve your hands
|
|
||||||
'`slpkg -F <packages>`', it will search in all the enable repositories and will print all the
|
|
||||||
packages that match the description that you enter.
|
|
||||||
|
|
||||||
If you want to see if any packages are installed on your system enter the command
|
|
||||||
'`slpkg -f <packages>`'. The option '`--third-party`' help you to view only the third-party
|
|
||||||
packages
|
|
||||||
|
|
||||||
The next three commands '`slpkg --installpkg, --upgradepkg, --removepkg <packages>`' install, upgrade,
|
|
||||||
remove packages from your system events. Notable mention you must give in the command
|
|
||||||
'`slpkg --removepkg <packages>`' which you can remove the packages with all dependencies together
|
|
||||||
after editing configuration file '`/etc/slpkg/slpkg.conf`' (default is disable) or add additional
|
|
||||||
option '`--deps`'. Also you can check if the packages they are used as dependency with additional
|
|
||||||
option '`--check-deps`'. Option '`--tag`' allow to remove packages by TAG. Optional you can use
|
|
||||||
the dialog utility with the additional option '`--checklist`' (require python3-pythondialog). Rmove
|
|
||||||
third-party packages with the option '`--third-party`'.
|
|
||||||
|
|
||||||
The command '`slpkg -d <packages>`' is useful to print the entire contents of a package.
|
|
||||||
|
|
||||||
Some examples you will see below.
|
|
||||||
|
|
||||||
|
|
||||||
##### Slpkg Examples
|
##### Slpkg Examples
|
||||||
|
|
||||||
Enable or disable default repositories, edit '`/etc/slpkg/repositories.conf`' file or with the command.
|
Enable or disable default repositories, edit '`/etc/slpkg/repositories.conf`' file or with the command.
|
||||||
|
|
26
README.md
26
README.md
|
@ -1,26 +0,0 @@
|
||||||
# slpkg 3.9.8
|
|
||||||
|
|
||||||
Slpkg is a powerful software package manager that installs, updates, and removes packages on
|
|
||||||
[Slackware](http://www.slackware.com/) based systems. It automatically computes dependencies and
|
|
||||||
figures out what things should occur to install packages. Slpkg makes it easier to maintain groups
|
|
||||||
of machines without having to manually update.
|
|
||||||
|
|
||||||
Slpkg works in accordance with the standards of the organization [SlackBuilds.org](https://www.slackbuilds.org)
|
|
||||||
to builds packages. Also uses the Slackware Linux instructions for installation,
|
|
||||||
upgrading or removing packages.
|
|
||||||
|
|
||||||
What makes slpkg to distinguish it from the other tools; The user friendliness it's a primary
|
|
||||||
target as well as easy to understand and use, also use colors to highlight packages and
|
|
||||||
display warning messages, etc.
|
|
||||||
|
|
||||||
[EXAMPLES.md](https://gitlab.com/dslackw/slpkg/blob/master/EXAMPLES.md) Explore some examples.
|
|
||||||
|
|
||||||
|
|
||||||
#### Asciicast:
|
|
||||||
|
|
||||||
[<img src="https://gitlab.com/dslackw/images/raw/master/slpkg/asciicast.png" width="250">](https://asciinema.org/a/3uFNAOX8o16AmKKJDIvdezPBa)
|
|
||||||
|
|
||||||
|
|
||||||
##### Copyright
|
|
||||||
|
|
||||||
Copyright 2014-2022 © Dimitris Zlatanidis. Slackware® is a Registered Trademark of Patrick Volkerding. Linux is a Registered Trademark of Linus Torvalds.
|
|
61
README.rst
Normal file
61
README.rst
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
***********
|
||||||
|
slpkg 3.9.9
|
||||||
|
***********
|
||||||
|
|
||||||
|
Slpkg is a powerful software package manager that installs, updates, and removes packages on
|
||||||
|
`Slackware <http://www.slackware.com/>`_ based systems. It automatically computes dependencies and
|
||||||
|
figures out what things should occur to install packages. Slpkg makes it easier to maintain groups
|
||||||
|
of machines without having to manually update.
|
||||||
|
|
||||||
|
Slpkg works in accordance with the standards of the organization `SlackBuilds.org <https://www.slackbuilds.org>`_
|
||||||
|
to build packages. Also uses the Slackware Linux instructions for installation,
|
||||||
|
upgrading or removing packages.
|
||||||
|
|
||||||
|
What makes slpkg distinguish from the other tools; The user-friendliness it's a primary
|
||||||
|
target as well as easy to understand and use, also uses colours to highlight packages and
|
||||||
|
display warning messages, etc.
|
||||||
|
|
||||||
|
Look in the `EXAMPLES.md <https://gitlab.com/dslackw/slpkg/blob/master/EXAMPLES.md>`_ file to explore some examples.
|
||||||
|
|
||||||
|
|
||||||
|
Asciicast
|
||||||
|
---------
|
||||||
|
|
||||||
|
|
||||||
|
.. image:: https://gitlab.com/dslackw/images/raw/master/slpkg/asciicast.png
|
||||||
|
:target: https://asciinema.org/a/3uFNAOX8o16AmKKJDIvdezPBa
|
||||||
|
:width: 200px
|
||||||
|
|
||||||
|
|
||||||
|
Install
|
||||||
|
-------
|
||||||
|
|
||||||
|
Install from the official third party `SBo repository <https://slackbuilds.org/repository/15.0/system/slpkg/>`_, or directly from the source:
|
||||||
|
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ wget slpkg-3.9.9.tar.gz
|
||||||
|
$ tar xvf slpkg-3.9.9.tar.gz
|
||||||
|
$ cd slpkg-3.9.9
|
||||||
|
$ ./install.sh
|
||||||
|
|
||||||
|
|
||||||
|
Usage
|
||||||
|
-----
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ slpkg update
|
||||||
|
$ slpkg -s sbo install <package_name>
|
||||||
|
$ slpkg --help
|
||||||
|
|
||||||
|
|
||||||
|
Copyright
|
||||||
|
---------
|
||||||
|
|
||||||
|
Copyright 2014-2022 © Dimitris Zlatanidis.
|
||||||
|
|
||||||
|
Slackware® is a Registered Trademark of Patrick Volkerding.
|
||||||
|
|
||||||
|
Linux is a Registered Trademark of Linus Torvalds.
|
|
@ -1,17 +1,17 @@
|
||||||
### This file was created to explain some peculiarities of repositories used by the slpkg.
|
## This file was created to explain some peculiarities of repositories used by the slpkg.
|
||||||
|
|
||||||
|
|
||||||
*NOTE: For more informations, refer directly to the repositories*
|
*NOTE: For more informations, refer directly to the repositories*
|
||||||
|
|
||||||
|
|
||||||
##### Default repositories:
|
## Default repositories:
|
||||||
|
|
||||||
For the -current users who they use the sbo repository:
|
For the -current users who they use the sbo repository:
|
||||||
SlackBuilds.org (sbo) FAQ(15):
|
SlackBuilds.org (sbo) FAQ(15):
|
||||||
Slackware current is not supported, but as a general rule, the scripts
|
Slackware current is not supported, but as a general rule, the scripts
|
||||||
should work on it as well.
|
should work on it as well.
|
||||||
|
|
||||||
Rworkman's (rlw) repository use dependencies where displayed in central site
|
Rworkman's (rlw) repository use dependencies where displayed in a central site
|
||||||
'`http://rlworkman.net/pkgs/`' and only those. Unfortunately there is no fixed reference
|
'`http://rlworkman.net/pkgs/`' and only those. Unfortunately there is no fixed reference
|
||||||
dependencies in the file PACKAGES.TXT. You can make changes in '`/etc/slpkg/rlworkman.deps`'
|
dependencies in the file PACKAGES.TXT. You can make changes in '`/etc/slpkg/rlworkman.deps`'
|
||||||
file.
|
file.
|
||||||
|
@ -35,13 +35,13 @@ Alien's ktown (ktown), Alien's multilib (multi), Slacke E17 and E18, slack-n-fre
|
||||||
|
|
||||||
IMPORTANT: For Alien's (Eric Hameleers) repositories (alien, multi and ktown) should run
|
IMPORTANT: For Alien's (Eric Hameleers) repositories (alien, multi and ktown) should run
|
||||||
'`slpkg upgrade`' instant '`slpkg update`', if you want to spend from -stable in -current or
|
'`slpkg upgrade`' instant '`slpkg update`', if you want to spend from -stable in -current or
|
||||||
not, because there is not different file '`ChangeLog.txt`' for each version.
|
not, because there is no different file '`ChangeLog.txt`' for each version.
|
||||||
|
|
||||||
|
|
||||||
##### Custom repositories:
|
## Custom repositories:
|
||||||
|
|
||||||
There is the possibility of adding the repository directly from the user enough to address
|
There is the possibility of adding the repository directly from the user enough to address
|
||||||
up to be the '`PACKAGES.TXT`' files and '`CHECKSUMS.md5`' least. If not is there file '`ChangeLog.txt`'
|
the '`PACKAGES.TXT`' files and '`CHECKSUMS.md5`' at least. If not is there file '`ChangeLog.txt`'
|
||||||
will get warning messages that the '`ChangeLog.txt`' file can not be read but not worry, the process
|
will get warning messages that the '`ChangeLog.txt`' file can not be read but not worry, the process
|
||||||
is completed normally have each time you run the command '`slpkg update`' the package lists for such
|
is completed normally have each time you run the command '`slpkg update`' the package lists for such
|
||||||
a repository will be recreated from start automatically.
|
a repository will be recreated from start automatically.
|
||||||
|
@ -51,6 +51,6 @@ Sometimes you may experience some problems with these repositories such as the n
|
||||||
can not be calculated, good is the report these problems.
|
can not be calculated, good is the report these problems.
|
||||||
|
|
||||||
|
|
||||||
##### Slackware ARM repositories:
|
## Slackware ARM repositories:
|
||||||
|
|
||||||
Slackware ARM users will must use only two repositories at the moment slack and sbo.
|
Slackware ARM users will must use only two repositories at the moment slack and sbo.
|
||||||
|
|
|
@ -40,6 +40,5 @@ if __name__ == "__main__":
|
||||||
s_user()
|
s_user()
|
||||||
virtual_env()
|
virtual_env()
|
||||||
main()
|
main()
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt as err:
|
||||||
print()
|
raise SystemExit(err)
|
||||||
raise SystemExit()
|
|
||||||
|
|
|
@ -108,7 +108,7 @@ find $PKG/usr/man -type f -exec gzip -9 {} \;
|
||||||
for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
|
for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
|
||||||
|
|
||||||
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
|
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
|
||||||
cp -a README.md ChangeLog.txt LICENSE ISSUES KNOWN_ISSUES REPOSITORIES.md \
|
cp -a README.rst ChangeLog.txt LICENSE ISSUES KNOWN_ISSUES REPOSITORIES.md \
|
||||||
INSTALL.md requirements.txt $PKG/usr/doc/$PRGNAM-$VERSION
|
INSTALL.md requirements.txt $PKG/usr/doc/$PRGNAM-$VERSION
|
||||||
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
|
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
|
||||||
|
|
||||||
|
|
|
@ -81,7 +81,7 @@ class MetaData:
|
||||||
|
|
||||||
__all__ = "slpkg"
|
__all__ = "slpkg"
|
||||||
__author__ = "dslackw"
|
__author__ = "dslackw"
|
||||||
__version_info__ = (3, 9, 8)
|
__version_info__ = (3, 9, 9)
|
||||||
__version__ = "{0}.{1}.{2}".format(*__version_info__)
|
__version__ = "{0}.{1}.{2}".format(*__version_info__)
|
||||||
__license__ = "GNU General Public License v3 (GPLv3)"
|
__license__ = "GNU General Public License v3 (GPLv3)"
|
||||||
__email__ = "d.zlatanidis@gmail.com"
|
__email__ = "d.zlatanidis@gmail.com"
|
||||||
|
|
|
@ -28,7 +28,7 @@ from slpkg.__metadata__ import MetaData as _meta_
|
||||||
from slpkg.pkg.manager import PackageManager
|
from slpkg.pkg.manager import PackageManager
|
||||||
|
|
||||||
|
|
||||||
class Auto:
|
class AutoInstall:
|
||||||
"""Select Slackware command to install packages
|
"""Select Slackware command to install packages
|
||||||
"""
|
"""
|
||||||
def __init__(self, packages):
|
def __init__(self, packages):
|
||||||
|
|
|
@ -29,7 +29,6 @@ from slpkg.clean import clean_tmp
|
||||||
from slpkg.load import Regex
|
from slpkg.load import Regex
|
||||||
from slpkg.desc import PkgDesc
|
from slpkg.desc import PkgDesc
|
||||||
from slpkg.messages import Msg
|
from slpkg.messages import Msg
|
||||||
from slpkg.auto_pkg import Auto
|
|
||||||
from slpkg.config import Config
|
from slpkg.config import Config
|
||||||
from slpkg.checks import Updates
|
from slpkg.checks import Updates
|
||||||
from slpkg.repoinfo import RepoInfo
|
from slpkg.repoinfo import RepoInfo
|
||||||
|
@ -37,6 +36,7 @@ from slpkg.repolist import RepoList
|
||||||
from slpkg.repositories import Repo
|
from slpkg.repositories import Repo
|
||||||
from slpkg.blacklist import BlackList
|
from slpkg.blacklist import BlackList
|
||||||
from slpkg.version import prog_version
|
from slpkg.version import prog_version
|
||||||
|
from slpkg.auto_pkg import AutoInstall
|
||||||
from slpkg.health import PackageHealth
|
from slpkg.health import PackageHealth
|
||||||
from slpkg.new_config import NewConfig
|
from slpkg.new_config import NewConfig
|
||||||
from slpkg.tracking import TrackingDeps
|
from slpkg.tracking import TrackingDeps
|
||||||
|
@ -777,11 +777,11 @@ class ArgParse(BlackList):
|
||||||
else:
|
else:
|
||||||
not_found.append(pkg)
|
not_found.append(pkg)
|
||||||
if packages:
|
if packages:
|
||||||
Auto(packages).select()
|
AutoInstall(packages).select()
|
||||||
if not_found:
|
if not_found:
|
||||||
for ntf in not_found:
|
for ntf in not_found:
|
||||||
self.msg.pkg_not_found("", ntf, "Not installed", "")
|
self.msg.pkg_not_found("", ntf, "Not installed", "")
|
||||||
raise SystemExit(1)
|
raise SystemExit(0)
|
||||||
|
|
||||||
def if_checklist(self):
|
def if_checklist(self):
|
||||||
try:
|
try:
|
||||||
|
|
Loading…
Reference in a new issue