If you, like me, use docky for managing your windows and launching your applications, you should have noted that recently an ArchLinux update broke docky because it installed a newer version of mono that docky doesn’t like. Anyways, here is how to fix it.
This is the error when trying to launch docky:
[1111@MNAME ~]$ docky Could not load file or assembly 'Mono.GetOptions, Version=18.104.22.168, Culture=neutral, PublicKeyToken=0738eb9f132ed756' or one of its dependencies. Unhandled Exception: System.TypeLoadException: Could not load type 'Docky.Docky' from assembly 'Docky, Version=0.1.0.0, Culture=neutral, PublicKeyToken=null'.
You can just recompile the package the usual way, but the best and easiest way to do it is to use the ABS (Arch Build System). If you already have ABS installed you can safely skip to the “Compiling docky using ABS” part. Here is a step by step guide:
To install ABS:
sudo pacman -S abs
Also you will need some compiling tools, install with:
sudo pacman -S base-devel
Next edit /etc/abs.conf to have the desired repos fetched
sudo nano /etc/abs.conf
Make sure that the last line is uncommented, if you don’t want to fetch some repo, just add a ! in front of its name and you should be good to go, I would recommend fetching all of them, it doesn’t take much space (entire tree is like 56mb uncompressed, about 18mb download) and it is really handy.
Next, download the abs tree:
Your ABS tree is now created under /var/abs. Note the appropriate branches of the ABS tree now exist and correspond to the ones you specified in /etc/abs.conf.
The abs command should be run periodically to keep in sync with the official repositories.
Next thing you have to do is create a build directory, a folder on your home
mkdir -p $HOME/abs
There you will compile the files you need for getting docky to work.
Now that ABS is installed and correctly configured, we can get on to:
Compiling Docky using ABS:
docky package its in community so we need to copy those files to our pc:
cp -r /var/abs/community/docky $HOME/abs
and change directory to $HOME/abs:
NOTE: DON’T ever do “sudo makepkg -s” be sure to run it as a normal user or else you could end up breaking your system.
This will compile the package, wait for it to finish and then install it using pacman:
sudo pacman -U slim-1.3.0-2-i686.pkg.tar.xz
now test docky, everything should be working now
Any questions leave it in the comments.
Thanks for reading!
NOTE: I’m leaving this here just for reference purposes or If you encounter a similar issue in the future, as of now, this isn’t needed anymore because the appropriate changed have been made on the Arch Linux packages
Thanks so much for this one, it’s exactly what i have been looking for, and I just CAN’T live without docky no more 😉
You made my day!
glad I could help! according to the archlinux bug tracker HERE, problem is resolved now, but compiling from source will ensure that your docky will run without a hitch for many, many days 😀
everything worked so far until i got to the makepkg -s command which is giving me the error “you do not have write permission to create packages in /home/user/abs/docky”
Nadairo, is “user” the username you are currently logged into? If you do “id” command, your username should match the folder (since only the user itself should have access to the home folder). That’s the reason why on the post it states using the $HOME variable… So you don’t run onto these kinds of problems. Let me know if this helps!