Something is broken in my system / Whonix-Workstation detected, but the meta package non-qubes-whonix-workstation is not installed.

Now, I also see A LOT of packages that were automatically installed and are no longer required:
the system suggest me to remove them with apt-get autoremove :frowning:

EDIT list of the packages :

The following packages were automatically installed and are no longer required:
  acpi-support acpi-support-base acpid anon-apps-config anon-apt-sources-list anon-gpg-tweaks anon-iceweasel-warning anon-mixmaster
  anon-shared-applications-kde anon-shared-default-applications anon-shared-desktop anon-shared-desktop-kde anon-shared-packages-dependencies
  anon-shared-packages-recommended anon-torchat anon-workstation-packages-dependencies anon-ws-base-files apparmor-profile-anondist apt-file ark
  baloo-kf5 bc bind9-host bindp bootclockrandomization ca-certificates-mono cli-common codecrypt command-not-found damngpl debsums dnsutils dolphin
  faketime gir1.2-atk-1.0 gir1.2-freedesktop gir1.2-gdkpixbuf-2.0 gir1.2-gtk-3.0 gir1.2-pango-1.0 gir1.2-poppler-0.18 gpl-sources-download groff-base
  grub-enable-apparmor gtk2-engines-oxygen gtk2-engines-pixbuf gtk3-engines-breeze gwenview haveged hexchat hexchat-common kcalc kde-baseapps-data
  kde-config-gtk-style kde-config-gtk-style-preview kde-config-sddm kde-style-oxygen-qt5 kdepasswd kdesudo kfind kgpg kmenuedit konsole konsole-kpart
  kscreen ksysguard ksysguard-data ksysguardd ksystemlog kwin-common kwin-data kwin-x11 kwrite libakonadi-contact4 libakonadi-kde4
  libakonadiprotocolinternals1 libapt-pkg-perl libbind9-140 libcrypto++6 libcupsimage2 libdmtx0a libdns162 libdolphinvcs5 libexif12
  libexporter-tiny-perl libfaketime libfile-fnmatch-perl libgdiplus libgeoip1 libgs9 libgs9-common libhavege1 libical2 libijs-0.35
  libimage-exiftool-perl libisc160 libisccc140 libisccfg140 libjbig2dec0 libjsoncpp1 libkabc4 libkcalcore4 libkexiv2-11 libkexiv2-data
  libkf5activitiesstats1 libkf5baloowidgets5 libkf5emoticons-bin libkf5emoticons-data libkf5emoticons5 libkf5kdcraw5 libkf5khtml-data libkf5khtml5
  libkf5kipi-data libkf5kipi31.0.0 libkf5people-data libkf5people5 libkf5peoplebackend5 libkf5peoplewidgets5 libkf5screen-bin libkf5screen7
  libkf5sysguard-bin libkfontinst5 libkfontinstui5 libkldap4 libkmime4 libkonq-common libkonq5-templates libkonq5abi1 libkpimutils4 libkprintutils4
  libkresources4 libksignalplotter7 libkwin4-effect-builtins1 libkwineffects9 libkwinglutils9 libkwinxrenderutils9 liblist-moreutils-perl liblwres141
  libmono-accessibility4.0-cil libmono-corlib4.5-cil libmono-data-tds4.0-cil libmono-i18n-west4.0-cil libmono-i18n4.0-cil libmono-posix4.0-cil
  libmono-security4.0-cil libmono-system-configuration4.0-cil libmono-system-core4.0-cil libmono-system-data4.0-cil libmono-system-drawing4.0-cil
  libmono-system-enterpriseservices4.0-cil libmono-system-numerics4.0-cil libmono-system-runtime-serialization-formatters-soap4.0-cil
  libmono-system-security4.0-cil libmono-system-transactions4.0-cil libmono-system-windows-forms4.0-cil libmono-system-xml4.0-cil
  libmono-system4.0-cil libmono-webbrowser4.0-cil libokularcore7 liboxygenstyle5-5 liboxygenstyleconfig5-5 libpackagekitqt5-0 libpangoxft-1.0-0
  libpaper1 libpkcs11-helper1 libpoppler-glib8 libpoppler-qt4-4 libprison0 libprotobuf10 libqimageblitz4 libqjson0 libqmobipocket1 libqrencode3
  libqt5concurrent5 libqt5multimedia5 libqt5multimediaquick-p5 libraw15 libregexp-assemble-perl libscim8v5 libspectre1 libsysfs2 libxcb-cursor0
  libxcb-record0 libyaml-0-2 lsof man-db mat mono-4.0-gac mono-gac mono-runtime mono-runtime-common mono-runtime-sgen most net-tools
  non-qubes-vm-enhancements okular openvpn oxygen-sounds p7zip p7zip-full plasma-desktop plasma-desktop-data plasma-pa pm-utils policyrcd-script-zg2
  polkit-kde-agent-1 power-savings-disable-in-vms pulseaudio-module-gconf pwgen python-gdbm python-gobject python-hachoir-core python-hachoir-parser
  python-mutagen python-pdfrw python-poppler python3-dateutil python3-gevent python3-greenlet python3-guimessages python3-sdnotify python3-socks
  python3-yaml qml-module-qt-labs-settings qml-module-qtmultimedia rads ricochet-im scurl sddm sdwdate sdwdate-gui secure-delete security-misc
  shared-folder-help strace swappiness-lowest sysfsutils systemsettings telnet thunderbird timesanitycheck timezone-utc tor-ctrl unzip usability-misc
  uwt vbox-disable-timesync virt-what vlc vlc-bin vlc-l10n vlc-plugin-qt vrms whonix-base-files whonix-firewall whonix-initializer whonix-legacy
  whonix-repository whonix-shared-packages-dependencies whonix-shared-packages-recommended whonix-welcome-page
  whonix-workstation-packages-dependencies whonix-workstation-packages-recommended whonix-ws-desktop-shortcuts whonix-ws-irc-chat-support
  whonix-ws-start-menu-additions whonixcheck xchat-improved-privacy xsel xserver-xorg xserver-xorg-input-all xserver-xorg-input-libinput
  xserver-xorg-video-fbdev xserver-xorg-video-qxl xserver-xorg-video-vesa xul-ext-torbirdy youtube-dl zip zsh zsh-common
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 Like
sudo apt-get update

.

sudo apt-get install non-qubes-whonix-workstation

Output :

root@host:/home/user# sudo apt-get install non-qubes-whonix-workstation
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 non-qubes-whonix-workstation : Depends: whonix-workstation-shared-packages-shared-meta but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
root@host:/home/user# 

Sorry.

sudo apt-get update

.

sudo apt-get install non-qubes-whonix-workstation-kde

Output :

root@host:/home/user# sudo apt-get update
Hit:1 http://security.debian.org stretch/updates InRelease
Hit:2 http://deb.whonix.org stretch InRelease                                                                                                                                                                                        
Ign:3 http://ftp.us.debian.org/debian stretch InRelease                                                                                                                                                                              
Hit:4 http://ftp.us.debian.org/debian stretch Release                                                                                                                                                                        
Hit:6 tor+http://deb.dds6qkxpwdeubwucdiaord2xgbbeyds25rbsgr73tbfpqpt4a6vjwsyd.onion stretch InRelease                                                                                                  
Ign:7 tor+http://vwakviie2ienjx6t.onion/debian stretch InRelease                                       
Hit:8 tor+http://sgvtcaew4bxjd7ln.onion stretch/updates InRelease
Hit:9 tor+http://vwakviie2ienjx6t.onion/debian stretch Release
Reading package lists... Done
root@host:/home/user# sudo apt-get install non-qubes-whonix-workstation-kde
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package non-qubes-whonix-workstation-kde
root@host:/home/user# 

@Patrick : Am I fucked ?

Frequently Asked Questions - Whonix ™ FAQ

Wait.

I mean, do you think I should reinstall my system ? Would that be safer or do you think there is a possibility to fix this ?

Again, thank you for your amazing support.

If you did not autoremove most/all Whonix packages, then no need.

I didn’t autoremove anything for now.

But what surprises me when I type the command line sudo apt-get update && sudo apt-get dist-upgrade in the Gateway I receive that warning :

The following packages were automatically installed and are no longer required:
  libcdio13 libdirectfb-1.2-9 libgles1-mesa libiso9660-8 libvcdinfo0 libvlccore8
  linux-headers-4.9.0-6-amd64 linux-headers-4.9.0-6-common linux-image-4.9.0-6-amd64
Use 'sudo apt autoremove' to remove them.

All these problems let me suppose my system is very sick. But why ? I have never ever touched the Gateway and it seems also that some packages are not necessary anymore.

If you want to test…

sudo whonix_repository --enable --repository testers
sudo apt-get update
sudo apt-get dist-upgrade
  1. No error message during the upgrade, went smoothly.

  2. Rebooting.

  3. Unfortunately if I launch the “whonixcheck” again I get the same error as mentioned earlier :frowning:

1 Like

Also whonixcheck was upgraded.

Check /usr/lib/whonixcheck/check_packages.bsh

https://github.com/Whonix/whonixcheck/blob/master/usr/lib/whonixcheck/check_packages.bsh#L23

It should check for non-qubes-whonix-workstation-kde now.

Output of

dpkg -l non-qubes-whonix-workstation

?

1 Like

My /usr/lib/whonixcheck/check_packages.bsh

#!/bin/bash

## Copyright (C) 2012 - 2018 ENCRYPTED SUPPORT LP <adrelanos@riseup.net>
## See the file COPYING for copying conditions.

check_meta_packages() {
   local meta_package_not_installed meta_package_wanted meta_package_wanted_list

   meta_package_wanted="unknown"

   if [ "$qubes_detected" = "true" ]; then
      meta_package_wanted_list="<code>qubes-whonix-gateway</code> or <code>qubes-whonix-workstation</code>"
      if [ "$vm_lower_case_short" = "gateway" ]; then
         meta_package_wanted="qubes-whonix-gateway"
      elif [ "$vm_lower_case_short" = "workstation" ]; then
         meta_package_wanted="qubes-whonix-workstation"
      fi
   else
      meta_package_wanted_list="<code>non-qubes-whonix-gateway-kde</code> or <code>non-qubes-whonix-workstation-kde</code>"
      if [ "$vm_lower_case_short" = "gateway" ]; then
         meta_package_wanted="non-qubes-whonix-gateway-kde"
      elif [ "$vm_lower_case_short" = "workstation" ]; then
         meta_package_wanted="non-qubes-whonix-workstation-kde"
      fi
   fi

   if [ "$meta_package_wanted" = "unknown" ]; then
      meta_package_not_installed="unknown"
   else
      if dpkg-query --show "$meta_package_wanted" &> /dev/null ; then
          meta_package_not_installed="none"
      else
          meta_package_not_installed="$meta_package_wanted"
      fi
   fi

   local if_you_know_what_you_are_doing_msg see_also_link
   if_you_know_what_you_are_doing_msg="$(if_you_know_what_you_are_doing_funct "$FUNCNAME")"
   see_also_link="<a href=https://www.whonix.org/wiki/Whonix_Debian_Packages>https://www.whonix.org/wiki/Whonix_Debian_Packages</a>"

   if [ "$meta_package_not_installed" = "none" ]; then
      local MSG="<p>Whonix Meta Packages Test Result: $meta_package_not_installed missing. (See also: $see_also_link)</p>"
      if [ "$verbose" -ge "1" ]; then
         $output_x ${output_opts[@]} --messagex --typex "info" --message "$MSG"
         $output_cli ${output_opts[@]} --messagecli --typecli "info" --message "$MSG"
      fi
      return 0
   elif [ "$meta_package_not_installed" = "unknown" ]; then
      local MSG="<p>Whonix Meta Packages Test Result: Neither Whonix-Gateway nor Whonix-Workstation detected.
Therefore unchecked, if either the $meta_package_wanted_list meta packages is installed.
<br />See also: $see_also_link
<br />$if_you_know_what_you_are_doing_msg</p>"
   else
      local MSG="<p>Whonix Meta Packages Test Result: $VM detected, but the meta package <code>$meta_package_not_installed</code> is not installed.
Did you accidentally uninstall it?
<br />See also: $see_also_link
<br />$if_you_know_what_you_are_doing_msg</p>"
   fi

   $output_x ${output_opts[@]} --messagex --typex "warning" --message "$MSG"
   $output_cli ${output_opts[@]} --messagecli --typecli "warning" --message "$MSG"
}

check_unwanted_packages() {
   local unwanted_package unwanted_packages_list unwanted_packages_counter dpkg_query_result first
   unwanted_packages_counter="0"
   for unwanted_package in $whonixcheck_unwanted_package ; do
      dpkg_query_result="$(dpkg-query --show --showformat='${Status}\n' "$unwanted_package" 2>/dev/null)" || true
      ## dpkg_query_result example:
      ## when installed           : install ok installed
      ## when not fully installed : install ok unpacked
      ## when removed             : deinstall ok config-files
      ## when purged, no stdout
      read -r first _ <<< "$dpkg_query_result"
      if [ "install" = "$first" ]; then
         unwanted_packages_counter="$(( $unwanted_packages_counter + 1 ))"
         unwanted_packages_list+="$unwanted_package "
      fi
   done

   if [ "$unwanted_packages_counter" = "0" ]; then
      local MSG="<p>Whonix Unwanted Packages Test Result: None found.</p>"
      if [ "$verbose" -ge "1" ]; then
         $output_x ${output_opts[@]} --messagex --typex "info" --message "$MSG"
         $output_cli ${output_opts[@]} --messagecli --typecli "info" --message "$MSG"
      fi
      return 0
   fi

   local if_you_know_what_you_are_doing_msg see_also_link
   if_you_know_what_you_are_doing_msg="$(if_you_know_what_you_are_doing_funct "$FUNCNAME")"
   see_also_link="<a href=https://www.whonix.org/wiki/Whonix_Debian_Packages>https://www.whonix.org/wiki/Whonix_Debian_Packages</a>"

   local packages_help_msg
   packages_help_msg="<br></br>1. Open a terminal. ($persistent_changes_start_menu_instructions_first_part Terminal)
<br></br>2. Purge. <blockquote><code>sudo apt-get purge $unwanted_packages_list</code></blockquote>"

   if [ "$qubes_detected" = "true" ]; then
      if [ "$qubes_vm_persistence" = "full" ]; then
         ## Running in either StandaloneVM or TemplateVM.
         ## Above existing packages_help_msg is fine.
         true
      else
         ## TemplateBasedVM
         packages_help_msg="<br></br>1. Open a terminal. ($persistent_changes_start_menu_instructions_first_part Terminal)
<br></br>2. Purge. <blockquote><code>sudo apt-get purge $unwanted_packages_list</code></blockquote>
3. Shutdown your TemplateVM. (dom0 -> Qubes VM Manager -> right click '<code>$qubes_base_template</code>' -> Shutdown VM)
<br></br>4. Shutdown and restart this TemplateBased <code>$qubes_vm_type</code>. (dom0 -> Qubes VM Manager -> right click '<code>$qubes_name_of_vm</code>' -> Shutdown VM)"
      fi
   fi

   local MSG="<p>Whonix Unwanted Packages Test Result: $unwanted_packages_counter unwanted package(s) installed. \
It is recommended that you remove them from $update_where.
$packages_help_msg
<br />See also: $see_also_link
<br />$if_you_know_what_you_are_doing_msg</p>"
   $output_x ${output_opts[@]} --messagex --typex "warning" --message "$MSG"
   $output_cli ${output_opts[@]} --messagecli --typecli "warning" --message "$MSG"
}

check_packages() {
   check_meta_packages
   check_unwanted_packages
}

Output of : dpkg -l non-qubes-whonix-workstation

root@host:/home/user# dpkg -l non-qubes-whonix-workstation
dpkg-query: no packages found matching non-qubes-whonix-workstation
root@host:/home/user# 

EDIT : I took a snapshot before the upgrade in case you want me to reverse something.

sudo apt-get update
sudo apt-get install non-qubes-whonix-workstation-kde
1 Like

YOU ARE A BOSS PATRICK !!!

Thumbs up :+1::clap::confetti_ball::tada:

Message disappeared !

Should I do the same on the Gateway now ?

Whonix-Gateway: If you want to test…

sudo whonix_repository --enable --repository testers
sudo apt-get update
sudo apt-get dist-upgrade

Hopefully not required.

sudo apt-get install non-qubes-whonix-gateway-kde

Let me know if it was required.

I decided to use the tester’s repository on both the Gateway and the Workstation. So no difference while updating or upgrading them in the futur.

May I ask you one more thing @Patrick ?

On my Workstation I still have a lot of packages that the system would like to remove :

The following packages were automatically installed and are no longer required:
  anon-shared-applications-kde anon-shared-default-applications anon-shared-desktop anon-shared-desktop-kde anon-shared-packages-dependencies
  anon-shared-packages-recommended anon-torchat anon-workstation-packages-dependencies ca-certificates-mono cli-common libexif12 libgdiplus
  libjsoncpp1 libmono-accessibility4.0-cil libmono-corlib4.5-cil libmono-data-tds4.0-cil libmono-i18n-west4.0-cil libmono-i18n4.0-cil
  libmono-posix4.0-cil libmono-security4.0-cil libmono-system-configuration4.0-cil libmono-system-core4.0-cil libmono-system-data4.0-cil
  libmono-system-drawing4.0-cil libmono-system-enterpriseservices4.0-cil libmono-system-numerics4.0-cil
  libmono-system-runtime-serialization-formatters-soap4.0-cil libmono-system-security4.0-cil libmono-system-transactions4.0-cil
  libmono-system-windows-forms4.0-cil libmono-system-xml4.0-cil libmono-system4.0-cil libmono-webbrowser4.0-cil mono-4.0-gac mono-gac mono-runtime
  mono-runtime-common mono-runtime-sgen non-qubes-vm-enhancements thunderbird whonix-shared-packages-dependencies whonix-shared-packages-recommended
  whonix-workstation-packages-dependencies whonix-workstation-packages-recommended xsel xul-ext-torbirdy
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Same on the Gateway :

The following packages were automatically installed and are no longer required:
  anon-gateway-default-applications anon-gateway-packages-dependencies
  anon-gateway-packages-recommended anon-shared-applications-kde
  anon-shared-default-applications anon-shared-packages-dependencies
  anon-shared-packages-recommended libcdio13 libdirectfb-1.2-9 libgles1-mesa
  libiso9660-8 libvcdinfo0 libvlccore8 linux-headers-4.9.0-6-amd64
  linux-headers-4.9.0-6-common linux-image-4.9.0-6-amd64
  whonix-gateway-packages-dependencies whonix-gateway-packages-recommended
  whonix-shared-packages-dependencies whonix-shared-packages-recommended
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Is that normal ? Can I keep it like this ? Is there a risk to autoremove ? Are these packages useful ?

EDIT : Error message was also present on the Gateway and I had to type the required command line :

sudo apt-get install non-qubes-whonix-gateway-kde

to make it disappear as I did on the Workstation.

Thank you again and again :slight_smile: You deserve :trophy::medal_military:

Expected.

Just now documented here:

Debian Packages - Whonix

If I autoremove some of packages if I will set testers repositories and then run dist-upgrade packages will be back ?

I didn’t have coIM installed, but after update I got it installeg. Now Whonix is using coIM by default ?