Page 1 of 4

puppy-get 2.0 beta

Posted: Fri 13 Oct 2017, 09:38
by mistfire
This is a script that behaves like apt-get for installing packages.

Usage: puppy-get [options] [package name]

Parameters:
update - refresh/create master package database
install - install a package together with its dependencies
download - download only a package together with its dependencies
list - show the list of all packages in the master package database
info - show package information
stat - show number of packages in the database
rollback - restore last updated database
remove - uninstall a package
package <package filename> - install a package using package file
view-installed - show user installed packages
loaddb <filename> - load a package database file as master package database
search - search a package name in the master database

how it works:
this is script creates master package database file where all the contents of package database files inside the /root/.package will merge one as file. An existing entry in the master database will be overwritten by an entry with later versions. (It works best on this x.x.x.x version number scheme.) It means the master database contains latest version of the packages. Otherwise you load a package database file from PPM

When installing a package it searches the all dependencies needed to be installed (same as apt-get), download all packages, and install it.

Upon downloading, the script roams around the repo list until the valid download package link is found.

NOTE:

1. This script need more tests

2. Creating/updating master database really tooks a long time to complete depending on how many packages per database file. If you terminate the process, you will have truncated/incomplete master package database. the package searching and dependency checking in the script might not work accurately if you have an incomplete database. Or else you load a package database file from PPM.

You can contribute to this project by uploading the modified script on this thread.

Need more work:
* Handling unconventional version schemes
* Updating/upgrading pre-installed packages

Posted: Fri 13 Oct 2017, 09:59
by backi
Sounds interesting !

Posted: Sat 14 Oct 2017, 03:26
by technosaurus

Posted: Sat 14 Oct 2017, 06:55
by mistfire
Thanks @technosaurus as of now. I successfully finished the script. Theoritically it will work. I cant test this script due to very limited internet bandwidth here in my place

Here is the finished script that I made

Posted: Sat 14 Oct 2017, 07:16
by mistfire
Hello puppy-get has reached alpha stage. It is only a single script. you can improve that script if you want.

Posted: Sat 14 Oct 2017, 09:49
by Keef
Scrapped the reply I put in earlier, as I don't think it was accurate - will test it again later.

Posted: Sat 14 Oct 2017, 12:12
by Keef
I am getting this error:

Code: Select all

# ./puppy-get update
**** Processing Packages-puppy-common-official ****
./puppy-get: line 90: /root/.packages/repo/Packages-puppy-common-official: No such file or directory
**** Processing Packages-puppy-noarch-official ****
./puppy-get: line 90: /root/.packages/repo/Packages-puppy-noarch-official: No such file or directory
**** Processing Packages-puppy-slacko14.1-official ****
./puppy-get: line 90: /root/.packages/repo/Packages-puppy-slacko14.1-official: No such file or directory
**** Processing Packages-puppy-slacko14.2-official ****
./puppy-get: line 90: /root/.packages/repo/Packages-puppy-slacko14.2-official: No such file or directory
**** Processing Packages-slackware-14.2-extra ****
./puppy-get: line 90: /root/.packages/repo/Packages-slackware-14.2-extra: No such file or directory
**** Processing Packages-slackware-14.2-official ****
./puppy-get: line 90: /root/.packages/repo/Packages-slackware-14.2-official: No such file or directory
**** Processing Packages-slackware-14.2-salix ****
./puppy-get: line 90: /root/.packages/repo/Packages-slackware-14.2-salix: No such file or directory
Removing the /repo bit does work, but the update was taking a long time and I had to go out, so quit. Will run it again later and see if it completes.

Posted: Sat 14 Oct 2017, 12:18
by mistfire
@Keef did you run the latest script that I uploaded today? Im already fixed that error. Making master database really tooks a long time to complete depending on how many packages per database file. If you terminate the process, you will have truncated/incomplete master package database. the package searching and dependency checking in the script might not work accurately if you have an incomplete database.

Posted: Sun 15 Oct 2017, 05:02
by mistfire
puppy-get 1.0 alpha released

changes:
* Improved packages searching.
* Autobackup master database when updating.
* Faster download link roaming.
* New parameters added
+ stat - shows number of packages in the master database
+ rollback - restore last updated master database.

NOTE: The master database for this script is different from previous. run "puppy-get update" first before using.

Posted: Wed 18 Oct 2017, 01:40
by mistfire
puppy-get 1.0 beta released

changes:
* bugfix on installation of packages
* new commands added
+ remove - uninstall a package
+ package - install a package using package file
+ view-installed - show user installed packages
+ loaddb - load a package database file as master package database

Posted: Wed 18 Oct 2017, 03:52
by ally
hey mist

just tried your script in xenialpup64 7.0.2.5

tried a couple of small installs, dillo and gweled

sadly both failed to run with missing dependencies

dillo is missing libfltk.so.1.3

gweled is missing libmikmod.so.3

unable to install the above manually (ie puppy get install ...)

running remove on both installs returns package not installed

running view-installed returns Fun and Internet where the packages were installed to (there are menu entries for both packages)

hope this makes sense...

:)

Posted: Wed 18 Oct 2017, 04:23
by ally
I have also tried editing user installed packages by adding dillo to the internet field but no joy

I have tried remove with full package name (ie dillo_3.0.5-2_amd64) but no joy also

copies of user installed packages, dillo files and gweled files included (fake .gz)

:)

Posted: Wed 18 Oct 2017, 04:50
by mistfire
Hi @ally can you gave me the download link of your packages that installed?

Posted: Wed 18 Oct 2017, 04:57
by ally
how do I find that? I used puppy-get install

:)

Posted: Wed 18 Oct 2017, 05:51
by mistfire
@ally

ah ok, I thought that you are using the "puppy-get package" command. By the way can you send me your master package database file that you generated? that file was /root/.packages/pkg-master-db

Posted: Wed 18 Oct 2017, 05:53
by ally

Posted: Wed 18 Oct 2017, 06:21
by mistfire
Wow! your master package database was huge! at least it will gave me a clue to fix that error on that script

Posted: Wed 18 Oct 2017, 06:40
by mistfire
@ally I find now the culprit. the dependency names in the master database must not include version numbers. I will try to correct that.

Posted: Fri 20 Oct 2017, 09:34
by mistfire
puppy-get 1.1 beta released

changes:

* bugfix on dependency sniffing for debian-based puppy package database
* some overhaul on package installation
* with summary report on install command after executed

@ally I finally now fixed the error the dependency sniffing now works on puppy xenial. I finally make some revisions on package install function

Posted: Fri 20 Oct 2017, 15:50
by ally
hi

1.1 fixes the install, dependencies corrected for my two installs, gweled and dillo

remove still failing with package not installed

I re-ran the database update prior to new installs of the above

:)