Thanks for taking the time to report this issue! However, it seems to be explained in the man page of apt-cache. Some background information: /etc/bash_completion.d/apt uses the following line to generate the packagenames:
COMPREPLY=( $( apt-cache --no-generate pkgnames "$cur" \ >From the manpage of apt-cache: pkgnames [ prefix ] This command prints the name of each package APT knows. The optional argument is a prefix match to filter the name list. The output is suitable for use in a shell tab complete function and the output is generated extremely quickly. This command is best used with the --generate option. Note that a package which APT knows of is not necessarily available to download, installable or installed, e.g. virtual packages are also listed in the generated list. I tried to check if a package can be installed via a shellscript, but run time is limiting, for completeness here's the script I tested: #!/bin/bash pkgs=$(apt-cache pkgnames python2) for pkg in $pkgs do cand=$(apt-cache policy $pkg | grep Candidate) if [[ "$cand" =~ "Candidate: (none)" ]] then uninstallable="$uninstallable $pkg" else installable="$installable $pkg" fi done echo $installable It seems the best solution would be to modify apt-cache and maybe add an option '--installable' to the pkgname argument to only show packages that have a candidate. ** Changed in: apt (Ubuntu) Status: New => Confirmed ** Changed in: apt (Ubuntu) Importance: Undecided => Wishlist -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/600463 Title: Bash auto-completion for apt-get & aptitude shows non-existent packages -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs