I ran into the "The package management system cannot be identified" error with both the printer and scanner drivers for the Canon PIXMA MG8100 series found here:I am trying to use an MG8120 with 64-bit Ubuntu 11.04. I'm not sure why the original poster, thewump, used such a crude modification of the install.sh script. The problem with Canon's script is bad logic that can be fixed properly. Their script fails because they think it is an error condition if the system has both the rpm and dpkg package manager binaries functionally available. Obviously there is nothing wrong with having two package managers installed and Ubuntu 11.04 falls afoul of this. I've attached a patch for install.sh that resolves the dilemma of which to use with a bias for dpkg, and it doesn't rely on forcing architecture. Although the patch was made for the install.sh found in cnijfilter-mg8100series-3.40-1-deb, I was able to use the same patch file as is for the script in scangearmp-mg8100series-1.60-1-deb as well. This solved the problem for me and I suspect/hope it will for other PIXMA driver installs too, although I haven't tried it with any other GNU/Linux distributions.
One would think that after all this time, that Canon would clue in that their installation scripts are all broken, at least for the most widely used GNU/Linux distribution in the world. Apparently Canon doesn't test its Linux driver installs. If someone in the know could point the correct Canon folk at this thread, I'm sure we'd all appreciate them fixing this.
I wasn't sure if embedded tab characters would survive posting my patch as a code element in this forum, which is why I attached the patch as a file. For the casual reader, here is the patch as a code element, but you should prefer the attached file if you actually want to feed it to your system's patch utility:
--- install.sh.original 2011-11-15 23:49:14.872663855 -0800
+++ install.sh 2011-11-16 03:04:23.082665351 -0800
@@ -1252,20 +1252,18 @@
dpkg --version 1> /dev/null 2>&1
- ## rpm and deb are error, or rpm and deb are no error, is error ##
- if [ $c_system_rpm = 0 -a $c_system_deb = 0 ] || [ $c_system_rpm != 0 -a $c_system_deb != 0 ]; then
+ ## Use deb if supported, else rpm if supported, else error ##
+ if [ $c_system_deb = 0 ]; then
+ elif [ $c_system_rpm = 0 ]; then
- if test $c_system_rpm -eq 0; then