-
-
Save vbajpai/4463250 to your computer and use it in GitHub Desktop.
#!/bin/sh | |
#takes one argument/parameter: the name of the package which didn't install correctly and should be removed along with its dependencies | |
#do opkg update first | |
#example: ./opkgremovepartlyinstalledpackage.sh pulseaudio-daemon | |
#get list of all packages that would be installed along with package x | |
opkg update | |
PACKAGES=`opkg --force-space --noaction install $1 | grep http | cut -f 2 -d ' ' | sed 's/.$//'` | |
for i in $PACKAGES | |
do | |
LIST=`wget -qO- $i | tar -Oxz ./data.tar.gz | tar -tz | sort -r | sed 's/^./\/overlay/'` | |
for f in $LIST | |
do | |
if [ -f $f ] | |
then | |
echo "Removing file $f" | |
rm -f $f | |
fi | |
if [ -d $f ] | |
then | |
echo "Try to remove directory $f (will only work on empty directories)" | |
rmdir $f | |
fi | |
done | |
done | |
echo "You may need to reboot for the free space to become visible" |
TL;DR see here for an updated version of this script.
The script was cutting off the last letter of the URL for some reason, causing the wget requests to 404, causing tar to try to extract files from 0 bytes, resulting in errors like tar: short read
and tar: invalid magic
.
The script didn't work on more recent versions of OpenWRT anyways, as it puts overlay files in /overlay/upper/ instead of /overlay/.
I've fixed these issues, made the script a bit more robust and added a few features (it doesn't download the package files twice anymore, to name one) . Hopefully it helps.
@lloydhazlett I've implemented your symlinks idea, but I'm not sure it's a good idea. I've opened an issue for discussion.
@rwv should be fixed here. If not, open an issue.
@hak8or fixed here.
@rverma-nikiai you need to supply an argument when running the script: the package name of the package you wish to clean up.
Is it possible to use the script for enigma 2 Recievers ? Like Dream or VU+ ?
best regards
Worked perfectly with OpenWrt 21.02.1 and TP-Link TL-MR3420 v5. Thanks, you are my saviors!
have similar error as @hak8or
@hak8or do you have any workaround to solve this?