这是indexloc提供的服务,不要输入任何密码
Skip to content

Conversation

@robertkirkman
Copy link
Member

warning: htop: local (3.2.1-1) is newer than extra (3.2.0-1)

that capability of termux-pacman is inherited from the distro Arch Linux through pacman.

however, without the command apt-show-versions, it is very difficult to identify and remove packages that are in the same situation in termux-apt.

Example output on a device that became filled with a mess of unofficial packages:

~ $ apt-show-versions | grep -e "newer than" -e "No available"
apt-show-versions:all 0.22.16 installed: No available version in archive
arpack-ng:aarch64 1:3.9.0-1 newer than version in archive
blender:aarch64 1:3.6.23 installed: No available version in archive
blender4:aarch64 4.5.2 installed: No available version in archive
code-server:aarch64 4.101.2 installed: No available version in archive
electrum:all 4.5.8-3 newer than version in archive
elisa:aarch64 25.08.0 installed: No available version in archive
embree:aarch64 4.4.0 installed: No available version in archive
frida:aarch64 17.2.11-1 installed: No available version in archive
frida-dev:aarch64 17.2.11-1 installed: No available version in archive
frida-python:aarch64 17.2.11-1 installed: No available version in archive
gjs:aarch64 1.84.2 installed: No available version in archive
glew:aarch64 2.2.0-13 newer than version in archive
hash-slinger:all 3.4-1 newer than version in archive
libspnav:aarch64 1.2 installed: No available version in archive
libspnav-static:aarch64 1.2 installed: No available version in archive
libxcb-errors:aarch64 1.0.1 installed: No available version in archive
libxcb-errors-static:aarch64 1.0.1 installed: No available version in archive
lv2:aarch64 1.18.10-6 newer than version in archive
manim:aarch64 0.19.0-3 newer than version in archive
materialx:aarch64 1.39.3 installed: No available version in archive
nala:all 0.16.0-1 newer than version in archive
ndk:all 27b installed: No available version in archive
nodejs-22:aarch64 22.15.1 installed: No available version in archive
openshadinglanguage:aarch64 1.14.6.0 installed: No available version in archive
orca:all 48.6-1 newer than version in archive
pyqt5:aarch64 5.15.11-2 newer than version in archive
pyside6:aarch64 6.9.1 installed: No available version in archive
pyside6-tools:aarch64 6.9.1 installed: No available version in archive
python-opengl:all 3.1.6-2 installed: No available version in archive
python-scipy:aarch64 1:1.16.0 newer than version in archive
python-tldp:all 0.7.5-6 newer than version in archive
python-xlib:all 0.33-2 newer than version in archive
qrupdate-ng:aarch64 1:1.1.5-1 newer than version in archive
rdircd:all 2023.02.07-2 newer than version in archive
shiboken6:aarch64 6.9.1 installed: No available version in archive
squashfs-tools:aarch64 4.2-p20130326-0 installed: No available version in archive
srt2vobsub:all 1.0-5 newer than version in archive
suitesparse:aarch64 1:7.9.0 newer than version in archive
sundials:aarch64 1:7.4.0 newer than version in archive
supertux-data:all 0.6.3 installed: No available version in archive
termux-gui-package:all 0.1.6-3 newer than version in archive
termux-gui-pm:all 1.0.0-3 newer than version in archive
termux-wsi-layer:aarch64 0.0.1 installed: No available version in archive
usd:aarch64 25.05.01 installed: No available version in archive
xfce4-panel-profiles:all 1.1.1-2 newer than version in archive
ytui-music:aarch64 2.0.0-beta-3 newer than version in archive
zmap:aarch64 1:4.3.2 installed: No available version in archive
~ $

while the best solution is arguably to never install unofficial packages in the first place, once they have already been installed, the next best solution is to have some way to efficiently get rid of them without having to completely uninstall Termux and clean install a new Termux.

- Fixes termux#23605

- brings termux-apt to have feature-parity with termux-pacman, since termux-pacman always shows these warnings if unofficial packages are detected:

```
warning: htop: local (3.2.1-1) is newer than extra (3.2.0-1)
```

that capability of termux-pacman is inherited from the distro Arch Linux through `pacman`.

however, without the command `apt-show-versions`, it is very difficult to identify and remove packages that are in the same situation in termux-apt.

Example output on a device that became filled with a mess of unofficial packages:

```
~ $ apt-show-versions | grep -e "newer than" -e "No available"
apt-show-versions:all 0.22.16 installed: No available version in archive
arpack-ng:aarch64 1:3.9.0-1 newer than version in archive
blender:aarch64 1:3.6.23 installed: No available version in archive
blender4:aarch64 4.5.2 installed: No available version in archive
code-server:aarch64 4.101.2 installed: No available version in archive
electrum:all 4.5.8-3 newer than version in archive
elisa:aarch64 25.08.0 installed: No available version in archive
embree:aarch64 4.4.0 installed: No available version in archive
frida:aarch64 17.2.11-1 installed: No available version in archive
frida-dev:aarch64 17.2.11-1 installed: No available version in archive
frida-python:aarch64 17.2.11-1 installed: No available version in archive
gjs:aarch64 1.84.2 installed: No available version in archive
glew:aarch64 2.2.0-13 newer than version in archive
hash-slinger:all 3.4-1 newer than version in archive
libspnav:aarch64 1.2 installed: No available version in archive
libspnav-static:aarch64 1.2 installed: No available version in archive
libxcb-errors:aarch64 1.0.1 installed: No available version in archive
libxcb-errors-static:aarch64 1.0.1 installed: No available version in archive
lv2:aarch64 1.18.10-6 newer than version in archive
manim:aarch64 0.19.0-3 newer than version in archive
materialx:aarch64 1.39.3 installed: No available version in archive
nala:all 0.16.0-1 newer than version in archive
ndk:all 27b installed: No available version in archive
nodejs-22:aarch64 22.15.1 installed: No available version in archive
openshadinglanguage:aarch64 1.14.6.0 installed: No available version in archive
orca:all 48.6-1 newer than version in archive
pyqt5:aarch64 5.15.11-2 newer than version in archive
pyside6:aarch64 6.9.1 installed: No available version in archive
pyside6-tools:aarch64 6.9.1 installed: No available version in archive
python-opengl:all 3.1.6-2 installed: No available version in archive
python-scipy:aarch64 1:1.16.0 newer than version in archive
python-tldp:all 0.7.5-6 newer than version in archive
python-xlib:all 0.33-2 newer than version in archive
qrupdate-ng:aarch64 1:1.1.5-1 newer than version in archive
rdircd:all 2023.02.07-2 newer than version in archive
shiboken6:aarch64 6.9.1 installed: No available version in archive
squashfs-tools:aarch64 4.2-p20130326-0 installed: No available version in archive
srt2vobsub:all 1.0-5 newer than version in archive
suitesparse:aarch64 1:7.9.0 newer than version in archive
sundials:aarch64 1:7.4.0 newer than version in archive
supertux-data:all 0.6.3 installed: No available version in archive
termux-gui-package:all 0.1.6-3 newer than version in archive
termux-gui-pm:all 1.0.0-3 newer than version in archive
termux-wsi-layer:aarch64 0.0.1 installed: No available version in archive
usd:aarch64 25.05.01 installed: No available version in archive
xfce4-panel-profiles:all 1.1.1-2 newer than version in archive
ytui-music:aarch64 2.0.0-beta-3 newer than version in archive
zmap:aarch64 1:4.3.2 installed: No available version in archive
~ $
```

while the best solution is arguably to never install unofficial packages in the first place, once they have already been installed, the next best solution is to have some way to efficiently get rid of them without having to completely uninstall Termux and clean install a new Termux.
@robertkirkman
Copy link
Member Author

I will merge this in 24 hours if no problems are found and there is no objection to the way I have implemented this.

@robertkirkman
Copy link
Member Author

robertkirkman commented Sep 15, 2025

Around the same time, I transposed (reproduced) the issue in Debian by mangling (messing with) custom Debian packages until I created a broken Debian environment containing the closest possible Debian equivalent of the same problem,

then I took this Debian environment to Debian support and asked them "is it possible to fix this somehow, but with the restriction that the apt-show-versions command is not available in the system for some reason?"

This is what I was shown:

dpkg -l | grep -E "^ii" | tr -s " " | cut -d" " -f2 | xargs -i bash -c 'apt-cache policy {} | grep -vE "Installed|Candidate|Version table" | grep -B1 -A1 "\*\*\*" | paste -sd" "' | grep -vE "//deb.debian.org/debian|//security.debian.org/debian-security"

I can confirm that does work as a command which has very similar end results to the command apt-show-versions | grep -e "newer than" -e "No available",

but it is clearly much less convenient and harder to write, so the usefulness of apt-show-versions in comparison is very large, I think.

@robertkirkman robertkirkman merged commit 9e9661d into termux:master Sep 16, 2025
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[termux-apt] octave from TUR and other problematic unofficial packages are difficult to remove

2 participants