Pkg - CLI package manager
Updated on GitLab:
fixes and updates to Gpkgdialog:
- fixes packages not installing properly if not in WORKDIR
- fixes output and logging of installs, uninstalls etc
- uses new --quiet option added to Pkg
- added option to force (re-)install of package
- added option to install pkg at bottom of package status window
Will do some more fixes then post an updated PET later.
fixes and updates to Gpkgdialog:
- fixes packages not installing properly if not in WORKDIR
- fixes output and logging of installs, uninstalls etc
- uses new --quiet option added to Pkg
- added option to force (re-)install of package
- added option to install pkg at bottom of package status window
Will do some more fixes then post an updated PET later.
[b][url=https://bit.ly/2KjtxoD]Pkg[/url], [url=https://bit.ly/2U6dzxV]mdsh[/url], [url=https://bit.ly/2G49OE8]Woofy[/url], [url=http://goo.gl/bzBU1]Akita[/url], [url=http://goo.gl/SO5ug]VLC-GTK[/url], [url=https://tiny.cc/c2hnfz]Search[/url][/b]
Updated on GitLab:
To install Pkg via GitLab, load the devx for your Puppy and simply run these commands:
If you installed Pkg using Git, you can update Pkg by doing this:
With the latest versions (commit 16e4d11e and later) you can now do these commands:
I will upload a new PET after a few more fixes and stuff...
Code: Select all
added new commands: `pkg add` and `pkg remove`:
- `pkg add PKGNAME` is just an alias for `pkg get`, and works the same (installs a pkg and its deps)
- `pkg remove PKGNAME` uninstalls a package, and its unused, left over deps
- can also use `pkg rm PKGNAME` too
- updated help info, usage docs and example commands to match
- added some advanced example commands too
fixes for --ask and --force options:
- only ask user once at start to install/download a pkg
- only ask user once at start to get a pkg and its deps
- only ask user once at start to get pkg deps
- fixed --force option with download command
- so using --force to download will re-download a pkg, not skip it
added support for blacklisted packages:
- get PKG_NAME_IGNORE from /root/.packages/PKGS_MANAGEMENT
- skip/ignore packages and deps in various places if found in $PKG_NAME_IGNORE
- this fixes (for example) libglib2.0-0 being installed and breaking Gtk file choosers in Stretch
Code: Select all
# download and install Pkg from GitLab
cd ~
mkdir -p GitLab/Pkg
cd GitLab/Pkg
git clone https://gitlab.com/sc0ttj/Pkg.git .
./installer.sh
# setup Pkg
source /etc/bash_completion.d/pkg
pkg update-sources
pkg repo-update
pkg repo-list
# choose a repo.. for example
pkg repo stretch-main
# now your ready to use Pkg :)
Code: Select all
#update to latest git version
git pull origin master
./installer.sh
Code: Select all
# download and install a package, and its deps
pkg add vlc
# uninstall a package, and uninstall its unused/left-over deps
pkg rm vlc
[b][url=https://bit.ly/2KjtxoD]Pkg[/url], [url=https://bit.ly/2U6dzxV]mdsh[/url], [url=https://bit.ly/2G49OE8]Woofy[/url], [url=http://goo.gl/bzBU1]Akita[/url], [url=http://goo.gl/SO5ug]VLC-GTK[/url], [url=https://tiny.cc/c2hnfz]Search[/url][/b]
Promoting puppy around the web
Promoting Puppy using Pkg
Many popular Linux packages/apps put easy install instructions on their project pages, in the form of copy and paste commands for popular package managers.
For example, many sites list apt-get, pacman, yum (etc) commands, so users of different distros can easily install stuff.
What's my point?
Puppy is never listed alongside the other distros, cos it doesn't have any command line package manager ... So no copy & paste stuff for Puppy users...
How to fix this?
If Pkg (or another CLI package manager) is included in most Puppys by default, we could
1. Request app and package developers update their pages with Puppy friendly, copy & paste install instructions.
2. Do pull requests on Github on popular projects, and add the setup/installation commands into their READMEs ourselves.
Why bother?
Puppy will then be listed alongside the other major distros on many popular software homepages and repos. Free advertising.
We can show off the "super simple, easy to use" nature of Puppy by having 1 simple command, like the other distros:
Puppys name will be out there more, letting people know Puppy is a valid alternative to the other distros listed - with all the same great apps available, and just as easy to use.
...The bottom line is, once we have an easy CLI way to install/remove packages, we can put those commands on popular software homepages and repos, and Puppy will be more visible online, sitting alongside the most well-known distros, offering easy installation of popular software, just like the big boys
... just a thought...
Many popular Linux packages/apps put easy install instructions on their project pages, in the form of copy and paste commands for popular package managers.
For example, many sites list apt-get, pacman, yum (etc) commands, so users of different distros can easily install stuff.
What's my point?
Puppy is never listed alongside the other distros, cos it doesn't have any command line package manager ... So no copy & paste stuff for Puppy users...
How to fix this?
If Pkg (or another CLI package manager) is included in most Puppys by default, we could
1. Request app and package developers update their pages with Puppy friendly, copy & paste install instructions.
2. Do pull requests on Github on popular projects, and add the setup/installation commands into their READMEs ourselves.
Why bother?
Puppy will then be listed alongside the other major distros on many popular software homepages and repos. Free advertising.
We can show off the "super simple, easy to use" nature of Puppy by having 1 simple command, like the other distros:
Code: Select all
pkg add vlc
...The bottom line is, once we have an easy CLI way to install/remove packages, we can put those commands on popular software homepages and repos, and Puppy will be more visible online, sitting alongside the most well-known distros, offering easy installation of popular software, just like the big boys
... just a thought...
[b][url=https://bit.ly/2KjtxoD]Pkg[/url], [url=https://bit.ly/2U6dzxV]mdsh[/url], [url=https://bit.ly/2G49OE8]Woofy[/url], [url=http://goo.gl/bzBU1]Akita[/url], [url=http://goo.gl/SO5ug]VLC-GTK[/url], [url=https://tiny.cc/c2hnfz]Search[/url][/b]
Latest changes (on GitLab):
1. Pkg should now support BionicPup and ArtfulPup out of the box.
2. Fixes to Xenial, Tahr, Precise and trusty repo settings.
3. Improvements to `pkg update [pkgname]` # find newer packages in the repos
4. Improvements to `pkg combine <pkgname>` # combine a package and its deps
5. Improvements to `pkg ldd <pkgname>` ' # check missing libs of given package, and its deps
6. Improvements to package compiling with Buildpet.
When using Buildpet as the compiling backend (not the default petbuild), Pkg now supports the following:
This means, that you can now customise the packages you build on a per package basis.
You could also pass the options as ENVIRONMENT variables:
Or, you could set and export them before calling Pkg, and use those options for all packages you build
NOTE: Only the xarchiver buildscript has been updated to support these features for now - use it as a test or example of how to update the other build scripts (in /usr/share/buildpet/).
Essentially, you just replace "/usr" with ${BASE_INSTALL_PREFIX} everywhere in the build script, and you should be good to go
These buildpet scripts are included in Pkg by default, but need updating, and also fixing to support these new options.
TO USE THESE NEW BUILDPET FEATURES:
Set BUILDTOOL=buildpet in ~/.pkg/pkgrc, then run
To install the latest Pkg from GitLab, load the devx, and run these commands:
1. Pkg should now support BionicPup and ArtfulPup out of the box.
2. Fixes to Xenial, Tahr, Precise and trusty repo settings.
3. Improvements to `pkg update [pkgname]` # find newer packages in the repos
4. Improvements to `pkg combine <pkgname>` # combine a package and its deps
5. Improvements to `pkg ldd <pkgname>` ' # check missing libs of given package, and its deps
6. Improvements to package compiling with Buildpet.
When using Buildpet as the compiling backend (not the default petbuild), Pkg now supports the following:
Code: Select all
pkg build xarchiver --configure='--prefix=/usr/local --other-opts' --cflags='-D -02 -whatever'
You could also pass the options as ENVIRONMENT variables:
Code: Select all
PKG_CONFIGURE="--prefix=/usr/local" PKG_CFLAGS='-02' pkg build xarchiver
Code: Select all
export PKG_CONFIGURE='(your opts)'
export PKG_CFLAGS='(your opts)'
pkg build xarchiver
Essentially, you just replace "/usr" with ${BASE_INSTALL_PREFIX} everywhere in the build script, and you should be good to go
These buildpet scripts are included in Pkg by default, but need updating, and also fixing to support these new options.
TO USE THESE NEW BUILDPET FEATURES:
Set BUILDTOOL=buildpet in ~/.pkg/pkgrc, then run
Code: Select all
pkg build xarchiver [your configure and CFLAG opts here]
Code: Select all
cd /root
rm -rf gitlab/pkg/
mkdir -p gitlab/pkg
cd gitlab/pkg
git clone https://gitlab.com/sc0ttj/Pkg.git .
./installer.sh
Last edited by sc0ttman on Tue 01 May 2018, 19:54, edited 1 time in total.
[b][url=https://bit.ly/2KjtxoD]Pkg[/url], [url=https://bit.ly/2U6dzxV]mdsh[/url], [url=https://bit.ly/2G49OE8]Woofy[/url], [url=http://goo.gl/bzBU1]Akita[/url], [url=http://goo.gl/SO5ug]VLC-GTK[/url], [url=https://tiny.cc/c2hnfz]Search[/url][/b]
Since the clone command doesn't follow symlinks, to install intoTo
install the latest Pkg from GitLab, load the devx, and run these
commands:
Code:
cd /root
rm -rf gitlab/pkg/
mkdir -p gitlab/pkg
cd gitlab/pkg
git clone https://gitlab.com/sc0ttj/Pkg.git .
./installer.sh
lighthouse (which isn't a woofCE build) add this after running the
above:
Code: Select all
cp -R /root/gitlab/pkg/usr/lib/pkg /usr/lib64
Thanks, sc0ttman.
df
Most recent updates on GitLab (since May 01, my last post):
- fix for 64-bit systems: moved /usr/lib/pkg to /usr/share/pkg
- fixed setup of TAB completion on first run
- fixed `pkg LI <search-term>` not filtering the list
- fixed `pkg update [pkgname]` listing malformed package names
- fixes in `pkg contents <pkgname>` make it more reliable
- fixes in Petbuild initialisation
- fixes in Buildpets parsing of the Pkg --configure option when it contains quotes
- fixed buildpet & all build scripts to correctly support --configure and --cflags params (see previous posts)
- added /usr/share/pkg/command_not_found_handle.sh (can replace default "Command not found" message with package suggestions, like apt-get)
- added available ENV vars to help output and READMEs
- added more examples to READMEs
To update, or install, see previous posts. Basically:
Then, to get started, run this command and follow instructions:
To replace the default 'Command not found' message with package suggestions,
add the following to your ~/.bashrc file, or type it into the console and hit ENTER:
To get the default 'Command not found' message back:
- fix for 64-bit systems: moved /usr/lib/pkg to /usr/share/pkg
- fixed setup of TAB completion on first run
- fixed `pkg LI <search-term>` not filtering the list
- fixed `pkg update [pkgname]` listing malformed package names
- fixes in `pkg contents <pkgname>` make it more reliable
- fixes in Petbuild initialisation
- fixes in Buildpets parsing of the Pkg --configure option when it contains quotes
- fixed buildpet & all build scripts to correctly support --configure and --cflags params (see previous posts)
- added /usr/share/pkg/command_not_found_handle.sh (can replace default "Command not found" message with package suggestions, like apt-get)
- added available ENV vars to help output and READMEs
- added more examples to READMEs
To update, or install, see previous posts. Basically:
Code: Select all
rm -rf ~/Gitlab/Pkg
mkdir -p ~/Gitlab/Pkg
git clone http://gitlab.com/sc0ttj/Pkg ~/Gitlab/Pkg
cd ~/Gitlab/Pkg
./installer.sh
Then, to get started, run this command and follow instructions:
Code: Select all
pkg welcome
To replace the default 'Command not found' message with package suggestions,
add the following to your ~/.bashrc file, or type it into the console and hit ENTER:
Code: Select all
source /usr/share/pkg/command_not_found_handle.sh
Code: Select all
unset command_not_found_handle
[b][url=https://bit.ly/2KjtxoD]Pkg[/url], [url=https://bit.ly/2U6dzxV]mdsh[/url], [url=https://bit.ly/2G49OE8]Woofy[/url], [url=http://goo.gl/bzBU1]Akita[/url], [url=http://goo.gl/SO5ug]VLC-GTK[/url], [url=https://tiny.cc/c2hnfz]Search[/url][/b]
Woofce will get rid of the multi arch symlink soon
This will cause a conflict with external scripts and stuff
...but this patch fixes compatibility with woofce:
pkg-woofce_no_multiarch_symlink.patch
How to apply the patch.. place the file in the same location as pkg and run:
This will cause a conflict with external scripts and stuff
...but this patch fixes compatibility with woofce:
pkg-woofce_no_multiarch_symlink.patch
Code: Select all
--- pkg-orig 2018-09-03 19:35:36.000000000 +0800
+++ pkg 2018-09-03 19:43:26.000000000 +0800
@@ -3215,22 +3215,27 @@
dpkg-deb --contents ${CURDIR}/${PKGNAME}.deb | grep -v '/$' | tr -s ' ' | cut -f6 -d' ' | sed -e 's/^.//g' | grep -v '^$' > $HOME/.packages/${PKGNAME}.files
fi
- pkg_has_archdir="$(grep -m1 "$DISTRO_ARCHDIR" "$HOME/.packages/${PKGNAME}.files")"
-
- # Workaround to avoid overwriting the $DISTRO_ARCHDIR symlink.
- if [ "$DISTRO_ARCHDIR" != "" -a -f $HOME/.packages/${PKGNAME}.files -a "$pkg_has_archdir" != "" ]; then
- mkdir -p /tmp/$PKGNAME
- rm -rf /tmp/$PKGNAME/*
- dpkg-deb -x ${CURDIR}/${PKGNAME}.deb /tmp/$PKGNAME/ 2> $TMPDIR/$SELF-cp-errlog
- for f in $(find /tmp/$PKGNAME \( -type f -o -type l \))
- do
- xpath=$(echo "$f" | cut -f 4-30 -d "/" | sed "s/$DISTRO_ARCHDIR\///")
- mkdir -p ${DIRECTSAVEPATH}/$(dirname "$xpath")
- cp -a "$f" ${DIRECTSAVEPATH}/$(dirname "$xpath")/
- done
- rm -rf /tmp/$PKGNAME &>/dev/null
+ # woofce: NO_MULTIARCH_SYMLINK=1 (DISTRO_SPECS)
+ if [ -z "$NO_MULTIARCH_SYMLINK" ] ; then
+ pkg_has_archdir="$(grep -m1 "$DISTRO_ARCHDIR" "$HOME/.packages/${PKGNAME}.files")"
+
+ # Workaround to avoid overwriting the $DISTRO_ARCHDIR symlink.
+ if [ "$DISTRO_ARCHDIR" != "" -a -f $HOME/.packages/${PKGNAME}.files -a "$pkg_has_archdir" != "" ]; then
+ mkdir -p /tmp/$PKGNAME
+ rm -rf /tmp/$PKGNAME/*
+ dpkg-deb -x ${CURDIR}/${PKGNAME}.deb /tmp/$PKGNAME/ 2> $TMPDIR/$SELF-cp-errlog
+ for f in $(find /tmp/$PKGNAME \( -type f -o -type l \))
+ do
+ xpath=$(echo "$f" | cut -f 4-30 -d "/" | sed "s/$DISTRO_ARCHDIR\///")
+ mkdir -p ${DIRECTSAVEPATH}/$(dirname "$xpath")
+ cp -a "$f" ${DIRECTSAVEPATH}/$(dirname "$xpath")/
+ done
+ rm -rf /tmp/$PKGNAME &>/dev/null
+ else
+ dpkg-deb -x ${CURDIR}/${PKGNAME}.deb ${DIRECTSAVEPATH}/ 2> $TMPDIR/$SELF-cp-errlog
+ fi
else
- dpkg-deb -x ${CURDIR}/${PKGNAME}.deb ${DIRECTSAVEPATH}/ 2> $TMPDIR/$SELF-cp-errlog
+ dpkg-deb -x ${CURDIR}/${PKGNAME}.deb ${DIRECTSAVEPATH}/ 2> $TMPDIR/$SELF-cp-errlog
fi
if [ "`cat $TMPDIR/$SELF-cp-errlog | grep 'tar: Exiting with failure status due to previous errors'`" != "" ];then
@@ -3451,34 +3456,37 @@
fi
done
- #121217 it seems that this problem is occurring in other modes (13 reported)...
- #121123 having a problem with multiarch symlinks in full-installation...
- #it seems that the symlink is getting replaced by a directory.
- if [ "$DISTRO_ARCHDIR" ];then #in /etc/rc.d/DISTRO_SPECS. 130112 change test from DISTRO_ARCHDIR. 130114 revert DISTRO_ARCHDIR_SYMLINKS==yes.
- if [ -d /usr/lib/${DISTRO_ARCHDIR} ];then
- if [ ! -h /usr/lib/${DISTRO_ARCHDIR} ];then
- cp -a -f --remove-destination /usr/lib/${DISTRO_ARCHDIR}/* /usr/lib/
- sync
- rm -r -f /usr/lib/${DISTRO_ARCHDIR}
- ln -s ./ /usr/lib/${DISTRO_ARCHDIR}
- fi
- fi
- if [ -d /lib/${DISTRO_ARCHDIR} ];then
- if [ ! -h /lib/${DISTRO_ARCHDIR} ];then
- cp -a -f --remove-destination /lib/${DISTRO_ARCHDIR}/* /lib/
- sync
- rm -r -f /lib/${DISTRO_ARCHDIR}
- ln -s ./ /lib/${DISTRO_ARCHDIR}
- fi
- fi
- if [ -d /usr/bin/${DISTRO_ARCHDIR} ];then
- if [ ! -h /usr/bin/${DISTRO_ARCHDIR} ];then
- cp -a -f --remove-destination /usr/bin/${DISTRO_ARCHDIR}/* /usr/bin/
- sync
- rm -r -f /usr/bin/${DISTRO_ARCHDIR}
- ln -s ./ /usr/bin/${DISTRO_ARCHDIR}
- fi
- fi
+ # woofce: NO_MULTIARCH_SYMLINK=1 (DISTRO_SPECS)
+ if [ -z "$NO_MULTIARCH_SYMLINK" ] ; then
+ #121217 it seems that this problem is occurring in other modes (13 reported)...
+ #121123 having a problem with multiarch symlinks in full-installation...
+ #it seems that the symlink is getting replaced by a directory.
+ if [ "$DISTRO_ARCHDIR" ];then #in /etc/rc.d/DISTRO_SPECS. 130112 change test from DISTRO_ARCHDIR. 130114 revert DISTRO_ARCHDIR_SYMLINKS==yes.
+ if [ -d /usr/lib/${DISTRO_ARCHDIR} ];then
+ if [ ! -h /usr/lib/${DISTRO_ARCHDIR} ];then
+ cp -a -f --remove-destination /usr/lib/${DISTRO_ARCHDIR}/* /usr/lib/
+ sync
+ rm -r -f /usr/lib/${DISTRO_ARCHDIR}
+ ln -s ./ /usr/lib/${DISTRO_ARCHDIR}
+ fi
+ fi
+ if [ -d /lib/${DISTRO_ARCHDIR} ];then
+ if [ ! -h /lib/${DISTRO_ARCHDIR} ];then
+ cp -a -f --remove-destination /lib/${DISTRO_ARCHDIR}/* /lib/
+ sync
+ rm -r -f /lib/${DISTRO_ARCHDIR}
+ ln -s ./ /lib/${DISTRO_ARCHDIR}
+ fi
+ fi
+ if [ -d /usr/bin/${DISTRO_ARCHDIR} ];then
+ if [ ! -h /usr/bin/${DISTRO_ARCHDIR} ];then
+ cp -a -f --remove-destination /usr/bin/${DISTRO_ARCHDIR}/* /usr/bin/
+ sync
+ rm -r -f /usr/bin/${DISTRO_ARCHDIR}
+ ln -s ./ /usr/bin/${DISTRO_ARCHDIR}
+ fi
+ fi
+ fi
fi
#flush unionfs cache, so files in pup_save layer will appear "on top"...
Code: Select all
patch pkg < pkg-woofce_no_multiarch_symlink.patch
- Attachments
-
- pkg-woofce_no_multiarch_symlink.patch_fake.gz
- (4.89 KiB) Downloaded 365 times
Hi aaaaa,
I have added your patch, but had to do it manually as the latest Pkg had some changes in that area of the script..
Please could you grab the latest version from Gitlab (https://gitlab.com/sc0ttj/Pkg/-/archive ... ter.tar.gz) and test it is OK (at some point, no rush...) ..
(I already installed a few more packages since applying the changes, seems OK.. )
I have added your patch, but had to do it manually as the latest Pkg had some changes in that area of the script..
Please could you grab the latest version from Gitlab (https://gitlab.com/sc0ttj/Pkg/-/archive ... ter.tar.gz) and test it is OK (at some point, no rush...) ..
(I already installed a few more packages since applying the changes, seems OK.. )
[b][url=https://bit.ly/2KjtxoD]Pkg[/url], [url=https://bit.ly/2U6dzxV]mdsh[/url], [url=https://bit.ly/2G49OE8]Woofy[/url], [url=http://goo.gl/bzBU1]Akita[/url], [url=http://goo.gl/SO5ug]VLC-GTK[/url], [url=https://tiny.cc/c2hnfz]Search[/url][/b]
installing from PPA repos
On Launchpad.net there are many "PPA" repos containing user contributed or more
up-to-date packages, which can be added to an ubuntu (and Debian) system.
To add a new PPA repo, Ubuntu/Debian users can simply do:
Well, I created a new script called ppa2pup.
So, now Puppy users can do:
If you're on an Ubuntu Bionic pup, if you only give the first option
(the PPA URL) it will grab the ubuntu bionic PPA pkgs by default.
Override by supplying the 2nd and 3rd options.
Full usage info:
See: https://gitlab.com/sc0ttj/Pkg/issues/31
It's not finished, but will do the following:
* find and download the relevant Packages.gz file of the PPA
* create a new puppy-compatible repo file from it
* install the repo, using Pkg
Example output:
Please test it out... It will be integrated into Pkg later as:
Then into the `apt-wrapper`
.. could also be improved to add the new repo to PetGet too .. ppa2pup would just need to update the ~/.packages/DISTRO_* files as well (i think)...
up-to-date packages, which can be added to an ubuntu (and Debian) system.
To add a new PPA repo, Ubuntu/Debian users can simply do:
Code: Select all
sudo add-apt-repository ppa:foo/bar
So, now Puppy users can do:
Code: Select all
ppa2pup ppa:foo/bar [debian|ubuntu] [bionic|artful|xenial|stretch|etc]
(the PPA URL) it will grab the ubuntu bionic PPA pkgs by default.
Override by supplying the 2nd and 3rd options.
Full usage info:
Code: Select all
This script creates a Puppy-compatible repo file from a PPA repo URL.
Usage: ppa2pup ppa:<user>/<repo> [debian|ubuntu] [bionic|stretch|artful|etc]
Examples:
ppa2pup ppa:team-xbmc/ppa
ppa2pup ppa:team-xbmc/ppa ubuntu bionic
ppa2pup ppa:team-xbmc/ppa ubuntu artful
ppa2pup ppa:team-xbmc/ppa debian stretch
It's not finished, but will do the following:
* find and download the relevant Packages.gz file of the PPA
* create a new puppy-compatible repo file from it
* install the repo, using Pkg
Example output:
Code: Select all
# ppa2pup ppa:freecad-maintainers/freecad-stable ubuntu bionic
Found URL:
http://ppa.launchpad.net/freecad-maintainers/freecad-stable/ubuntu/dists/bionic/main/binary-i386/Packages.gz
File to create:
~/.packages/Packages-ubuntu-bionic-freecadmaintainers
Success! File created.
Repo 'bionic-freecad-maintainers' added successfully.
Adding repo: stretch-main..
Adding repo: noarch..
Adding repo: common..
Adding repo: stretch-contrib..
Adding repo: stretch-multimedia..
Adding repo: stretch-non-free..
Adding repo: bionic-libretro..
Adding repo: bionic-freecad-maintainers..
Sources updated.
Repo info:
- Repo: bionic-freecad-maintainers
- Repo file: Packages-ubuntu-bionic-freecadmaintainers
- Package Type: deb
- Packages: 27
- URL Mirror 1: http://ppa.launchpad.net
- Fall back to: bionic-libretro, stretch-main, noarch, common,
stretch-contrib, stretch-multimedia,
stretch-non-free
Success! Repo added and available to use.
To use this repo, simply type the following and hit ENTER:
pkg repo bionic-freecad-maintainers
Code: Select all
pkg add-ppa team-xbmc/ppa ubuntu bionic
Code: Select all
pkg rm-ppa team-xbmc/ppa ubuntu bionic
.. could also be improved to add the new repo to PetGet too .. ppa2pup would just need to update the ~/.packages/DISTRO_* files as well (i think)...
Last edited by sc0ttman on Mon 17 Sep 2018, 07:26, edited 2 times in total.
[b][url=https://bit.ly/2KjtxoD]Pkg[/url], [url=https://bit.ly/2U6dzxV]mdsh[/url], [url=https://bit.ly/2G49OE8]Woofy[/url], [url=http://goo.gl/bzBU1]Akita[/url], [url=http://goo.gl/SO5ug]VLC-GTK[/url], [url=https://tiny.cc/c2hnfz]Search[/url][/b]
If you pull down the latest commit (240a6ec6 or later), and re-download the `ppa2pup` script (https://gitlab.com/sc0ttj/Pkg/issues/31#note_101706643) then hopefully, it should work OK...rockedge wrote:I will test it by adding the Ubuntu ZoneMinder PPA from iconner PPA and see pkg will install zoneminder correctly. or close to correctly...
Don't forget to switch to the new PPA repo after you install it..
pkg repo <repo-name>
.. then you can start adding packages from the PPA repo:
pkg add <pkgname>
NOTE ABOUT 'FALLBACK REPOS':
By default, Pkg will create a 'fall back' list for the newly added repos..
A 'fall back' list is simply the list of other repos to fall back to when looking for deps..
When you add a PPA repo, its fallback list will starts with the repo selected at the time of adding
the PPA, and then that repos fallbacks, and then the other repos..
For example, if your current repo is 'bionic-teamxbmc' when adding a new PPA repo, then
'bionic-teamxbmc' will be the first repo that your newly added PPA falls back to when looking for deps...
Therefore - it is recommended (not essential) you add new PPA repos while your current repo is one of the
'main' ones, like 'bionic-main', or 'xenial-main' (etc).. (and not some other PPA repo)
Type `pkg repo-info` to see repo info, including the fallback list for that repo.
You can always edit the fall back lists in ~/.pkg/sources (look for the line that contains your new repo, and
edit the last field (a space separated list of repo names).
Last edited by sc0ttman on Tue 18 Sep 2018, 14:08, edited 1 time in total.
[b][url=https://bit.ly/2KjtxoD]Pkg[/url], [url=https://bit.ly/2U6dzxV]mdsh[/url], [url=https://bit.ly/2G49OE8]Woofy[/url], [url=http://goo.gl/bzBU1]Akita[/url], [url=http://goo.gl/SO5ug]VLC-GTK[/url], [url=https://tiny.cc/c2hnfz]Search[/url][/b]
Also added a nice fix for TAB completion ... Makes it work much better..
Pkg can auto complete commands (install, update, search, list-deps, add-source ,etc, etc) ... and also package names ... and repo names ..
And it is context sensitive.. Pkg will auto-complete and list only the relevant things depending on which command you run..
(for example, Pkg will list only installed packages for `pkg rm [TAB]`)
If you already installed the gitlab repo somewhere, you can update like so:
Pkg can auto complete commands (install, update, search, list-deps, add-source ,etc, etc) ... and also package names ... and repo names ..
And it is context sensitive.. Pkg will auto-complete and list only the relevant things depending on which command you run..
(for example, Pkg will list only installed packages for `pkg rm [TAB]`)
If you already installed the gitlab repo somewhere, you can update like so:
Code: Select all
cd ~/gitlab/Pkg # (or wherever you put it)
git checkout master
git pull origin master
./installer.sh
[b][url=https://bit.ly/2KjtxoD]Pkg[/url], [url=https://bit.ly/2U6dzxV]mdsh[/url], [url=https://bit.ly/2G49OE8]Woofy[/url], [url=http://goo.gl/bzBU1]Akita[/url], [url=http://goo.gl/SO5ug]VLC-GTK[/url], [url=https://tiny.cc/c2hnfz]Search[/url][/b]
Successfully installed Transmission 2.94!
Wow, it worked! Thanks, sc0ttman
I'd been struggling to install Transmission 2.94 on BionicPup 64 as the dependencies appeared to grow arms and legs and crawl off in different directions. This script got it installed and working in an instant.
In case anyone else needs it, I got the PPA details from here:
http://ubuntuhandbook.org/index.php/201 ... ntu-18-04/
I added the repo, downloaded the .deb and installed it, all through the script. I love the way the user's guided through the steps - all beautifully clear.
I'd been struggling to install Transmission 2.94 on BionicPup 64 as the dependencies appeared to grow arms and legs and crawl off in different directions. This script got it installed and working in an instant.
In case anyone else needs it, I got the PPA details from here:
http://ubuntuhandbook.org/index.php/201 ... ntu-18-04/
I added the repo, downloaded the .deb and installed it, all through the script. I love the way the user's guided through the steps - all beautifully clear.
Last edited by RedQuine on Sat 23 Feb 2019, 09:53, edited 1 time in total.
This package manager seems to be coming along in leaps and bounds. Very exciting for Puppy I'd say. Are there plans for this to become integrated into woofCE or at least become standard install with new Pups (which certainly would require it being provided by woofCE at least)? I'm surprised, in the circumstances of its need, not to hear more comments from Pup main developers about this development aside from the regular reports from its dev in this thread. Come on guys, get this adopted as a core Puppy facility!
wiak
wiak
Updates
Improvements to ppa2pup script:
* now supports third-party debian repo URLs, as well as Launchpad PPA URLs
* which now allows installing repos from websites other than Launchpad
* also, important fixes in getting the deps list of each package
New slack2pup script:
* convert third-party Slackware repos to Puppy repos
Downloads
Download ppa2pup:
https://gitlab.com/sc0ttj/dotfiles/raw/ ... in/ppa2pup
Download slack2pup:
https://gitlab.com/sc0ttj/dotfiles/raw/ ... /slack2pup
Save in your $PATH.. Make executable..
Both scripts create and also install the repos for you (requires Pkg to be installed).
ppa2pup usage:
slack2pup usage:
NOTES:
Finding third-party Debian repos:
If the file listing dir in your browser contains dirs called 'dists' and 'pool', then that URL is probably the URL you need for ppa2pup - just paste it into the terminal and optionally append the distro version and repo stream (main/contrib/etc) to the `ppa2pup` command, if needed.
Finding Slackware repos:
Choose the repos for your architecture... Be careful choosing the PACKAGES.TXT file for Slackware repos, some sites contain multiples ones at various levels.. In that case, choose the first one you find (highest level) and start there.
Some 3rd party Slackware repos can be found here: http://www.slakfinder.org/showrepo.php
EDIT: Just fixed some errors in generating the correct repo names & URLs from given URLs.. Should be fixed now... If Pkg was giving "Error: Package URL not found", this should fix it.
EDIT2: Just re-fixed slack2pup - it was including '.gz.' in repo url ...
Improvements to ppa2pup script:
* now supports third-party debian repo URLs, as well as Launchpad PPA URLs
* which now allows installing repos from websites other than Launchpad
* also, important fixes in getting the deps list of each package
New slack2pup script:
* convert third-party Slackware repos to Puppy repos
Downloads
Download ppa2pup:
https://gitlab.com/sc0ttj/dotfiles/raw/ ... in/ppa2pup
Download slack2pup:
https://gitlab.com/sc0ttj/dotfiles/raw/ ... /slack2pup
Save in your $PATH.. Make executable..
Both scripts create and also install the repos for you (requires Pkg to be installed).
ppa2pup usage:
Code: Select all
This script creates a Puppy-compatible repo file from a PPA or Debian repo.
For Launchpad PPA repos:
Usage: ppa2pup ppa:<user>/<repo> [debian|ubuntu] [bionic|stretch|artful|etc]
Examples:
ppa2pup ppa:team-xbmc/ppa
ppa2pup ppa:team-xbmc/ppa ubuntu bionic
ppa2pup ppa:team-xbmc/ppa ubuntu artful
ppa2pup ppa:team-xbmc/ppa debian stretch
For other third-party Debian repos:
Usage: ppa2pup http://site.com/[debian|ubuntu]/ [stretch|bionic|etc] [main|contrib|etc]
Examples:
ppa2pup http://rpms.litespeedtech.com/debian/
ppa2pup http://rpms.litespeedtech.com/debian/ stretch main
NOTE: Any ommitted distro names or versions will be guessed.
slack2pup usage:
Code: Select all
slack2pup - convert Slackware repos to Puppy repo files
Usage examples:
slack2pup http://site.com/path/to/PACKAGES.TXT
slack2pup http://site.com/path/to/PACKAGES.TXT.gz
Finding third-party Debian repos:
If the file listing dir in your browser contains dirs called 'dists' and 'pool', then that URL is probably the URL you need for ppa2pup - just paste it into the terminal and optionally append the distro version and repo stream (main/contrib/etc) to the `ppa2pup` command, if needed.
Finding Slackware repos:
Choose the repos for your architecture... Be careful choosing the PACKAGES.TXT file for Slackware repos, some sites contain multiples ones at various levels.. In that case, choose the first one you find (highest level) and start there.
Some 3rd party Slackware repos can be found here: http://www.slakfinder.org/showrepo.php
EDIT: Just fixed some errors in generating the correct repo names & URLs from given URLs.. Should be fixed now... If Pkg was giving "Error: Package URL not found", this should fix it.
EDIT2: Just re-fixed slack2pup - it was including '.gz.' in repo url ...
[b][url=https://bit.ly/2KjtxoD]Pkg[/url], [url=https://bit.ly/2U6dzxV]mdsh[/url], [url=https://bit.ly/2G49OE8]Woofy[/url], [url=http://goo.gl/bzBU1]Akita[/url], [url=http://goo.gl/SO5ug]VLC-GTK[/url], [url=https://tiny.cc/c2hnfz]Search[/url][/b]
I have updated the ppa2pup script so that is also takes the repo stream as well.. Download from link above.
If you don't give the repo stream, it will default to 'main' ..
Code: Select all
Usage examples:
ppa2pup ppa:foo/bar ubuntu bionic contrib
ppa2pup ppa:foo/bar ubuntu bionic non-free
ppa2pup ppa:foo/bar debian stretch main
..etc..
[b][url=https://bit.ly/2KjtxoD]Pkg[/url], [url=https://bit.ly/2U6dzxV]mdsh[/url], [url=https://bit.ly/2G49OE8]Woofy[/url], [url=http://goo.gl/bzBU1]Akita[/url], [url=http://goo.gl/SO5ug]VLC-GTK[/url], [url=https://tiny.cc/c2hnfz]Search[/url][/b]
I've updated the ppa2pup script:
Some of the launchpad/ppa/debian repo URLs that ppa2pup supports have multiple
repos streams (actually called 'components') inside them, called things like 'main', 'contrib', 'non-free', and other stuff...
The ppa2pup script now supports the creation of separate repos for each 'component',
so it will create a repo for each 'component' passed to it...
Example:
ppa2pup http://foo.com/debian/ stretch main contrib non-free
(So, the usage is the same as before, but you can now add more components to the end)
In the example above, 3 repos would be created (foo-main, foo-contrib & foo-non-free), each making
packages from foo.com available to install..
Some of the launchpad/ppa/debian repo URLs that ppa2pup supports have multiple
repos streams (actually called 'components') inside them, called things like 'main', 'contrib', 'non-free', and other stuff...
The ppa2pup script now supports the creation of separate repos for each 'component',
so it will create a repo for each 'component' passed to it...
Example:
ppa2pup http://foo.com/debian/ stretch main contrib non-free
(So, the usage is the same as before, but you can now add more components to the end)
In the example above, 3 repos would be created (foo-main, foo-contrib & foo-non-free), each making
packages from foo.com available to install..
Last edited by sc0ttman on Fri 07 Dec 2018, 00:57, edited 2 times in total.
[b][url=https://bit.ly/2KjtxoD]Pkg[/url], [url=https://bit.ly/2U6dzxV]mdsh[/url], [url=https://bit.ly/2G49OE8]Woofy[/url], [url=http://goo.gl/bzBU1]Akita[/url], [url=http://goo.gl/SO5ug]VLC-GTK[/url], [url=https://tiny.cc/c2hnfz]Search[/url][/b]
apt2pup
....I've been trying to make it easier to add new repos to Puppy...
Background info
You'll often see installation instructions for 3rd party repos in Debian/Ubuntu like these:
or
or
(just FYI, the "official" repos tend to be in /etc/apt/sources.list, while 3rd party repos go in /etc/apt/sources.list.d/<name>.list )
Read more info about SourcesList at the Debian website.
Problem!
The commands above don't work in Puppy - not even ones based on Debian/Ubuntu
But in Debian/Ubuntu, all these commands (and others) add a new repo to the system, making new
packages available..
Solution (so far)
New script: apt2pup
A script which processes the contents of /etc/apt/sources.list and /etc/apt/sources.list.d/*.list files,
and converts each repo found into a Puppy-compatible repo (using ppa2pup)
it will remove and (re)convert the repos it finds each time it is run... And it is quite slow...
Download:
https://gitlab.com/sc0ttj/dotfiles/raw/ ... in/apt2pup
Requires Pkg and ppa2pup be installed...
....Why?
Eventually, these scripts will end up inside Pkg, making it easy to add/remove repos from
a variety of (compatible) sources:
* 3rd party Slackware, Ubuntu, Debian URLs
* Launchpad PPAs
* using `apt-add-repository` commands
* using `pkg add-source` command
Background info
You'll often see installation instructions for 3rd party repos in Debian/Ubuntu like these:
Code: Select all
sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ bionic main'
Code: Select all
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
Code: Select all
wget -O- http://neuro.debian.net/lists/stretch.de-m.libre | sudo tee /etc/apt/sources.list.d/neurodebian.list
Read more info about SourcesList at the Debian website.
Problem!
The commands above don't work in Puppy - not even ones based on Debian/Ubuntu
But in Debian/Ubuntu, all these commands (and others) add a new repo to the system, making new
packages available..
Solution (so far)
New script: apt2pup
A script which processes the contents of /etc/apt/sources.list and /etc/apt/sources.list.d/*.list files,
and converts each repo found into a Puppy-compatible repo (using ppa2pup)
it will remove and (re)convert the repos it finds each time it is run... And it is quite slow...
Download:
https://gitlab.com/sc0ttj/dotfiles/raw/ ... in/apt2pup
Requires Pkg and ppa2pup be installed...
Code: Select all
# apt2pup -h
This script gets the repo URLs listed in /etc/apt/sources.list, and
passes them to `ppa2pup`, which then creates a Puppy-compatible repo
from the repo URLs it receives (if possible).
More info:
/etc/apt/sources.list usually contains lines like:
deb https://deb.nodesource.com/node_8.x trusty main
deb http://apt.postgresql.org/pub/repos/apt trusty-pgdg main
deb-src http://apt.postgresql.org/pub/repos/apt trusty-pgdg main
The first bit refers to package type (regular or source), the second
is the URL where the packages are, the third is OS version, and
the last is the "repo stream" - often main, contrib, or non-free.
This script will ignore "deb-src" entries, and parse the others
Eventually, these scripts will end up inside Pkg, making it easy to add/remove repos from
a variety of (compatible) sources:
* 3rd party Slackware, Ubuntu, Debian URLs
* Launchpad PPAs
* using `apt-add-repository` commands
* using `pkg add-source` command
[b][url=https://bit.ly/2KjtxoD]Pkg[/url], [url=https://bit.ly/2U6dzxV]mdsh[/url], [url=https://bit.ly/2G49OE8]Woofy[/url], [url=http://goo.gl/bzBU1]Akita[/url], [url=http://goo.gl/SO5ug]VLC-GTK[/url], [url=https://tiny.cc/c2hnfz]Search[/url][/b]