Posts Tagged ‘release’

How to downgrade package with apt-get on Debian / Ubuntu / Mint Linux

Thursday, October 19th, 2017



How can I downgrade a debian package to an older version with apt-get?

Downgrading a package in Debian is not frequently required but sometimes it is a must lets say a package you just upgraded fails to communicate properly to an application, in my case that's Ejabberd server which was working pretty well with Yaxim, Bruno or Xabber Mobile android application clients, unfortunately right after periodic apt-get upgrades I do with apt due to security upgrade of deb package ejabberd=2.1.10-4+deb7u1 to ejabberd=2.1.10-4+deb7u2 it messed up and even though it worked fine with Desktop clients such as Gajim and Pidgin, there was no Android application on my Phone with Android 4.4 which was able to communicate properly with the TLS encrypted Jabber server so my only option was to downgrade back to ejabberd=2.1.10-4+deb7u1.

I looked through a short URL is ( but I couldn't find the old deb file to downgrade so I was in a situation …

 Then I duckduck goed (I've recently stopped using Google as Google is collecting too much data and sharing with NSA) and I found following instructions on downgrade


If you have the version number, or the target release, apt-get supports choosing a particular version or target release. More details can be found on manual page of apt-get. It can also be accessed from terminal by typing man apt-get

sudo apt-get install <package-name>=<package-version-number> OR

sudo apt-get -t=<target release> install <package-name>

is the command to be run. This can be used to down-grade a package to a specific version.

It has been helpfully pointed out in the comments that

    apt-cache showpkg <package-name> – lists all available versions. (h/t Sparhawk)
    apt-mark hold <package-name> "holds" – the package at the current version, preventing automatic upgrades. (h/t Luís de Sousa )

In other words All I had to do is as root superuser is:

apt-get install «pkg»=«version»


aptitude install «pkg»=«version»

Where «pkg» is the name of the package, and «version» is the version number.

So I just issued following cmd:

root@pcfreak:~# apt-get install ejabberd=2.1.10-4+deb7u1
Четене на списъците с пакети… Готово
Изграждане на дървото със зависимости       
Четене на информацията за състоянието… Готово
Предложени пакети:
Следните НОВИ пакети ще бъдат инсталирани:
0 актуализирани, 1 нови инсталирани, 0 за премахване и 3 без промяна.
Необходимо е да се изтеглят 1795 kB архиви.
След тази операция ще бъде използвано 3699 kB допълнително дисково пространство.
Изт:1 wheezy/main ejabberd amd64 2.1.10-4+deb7u1 [1795 kB]

P.S. Sorry for the cyrillic for those who can't read it but it is standard messages that Debian does in package install time.

Analogously you can do it for any other newer package that upgraded, later on to prevent further security updates of the package you will have to put the package on hold, that's as easy as running:

root@pcfreak:~# aptitude hold ejabberd
No packages will be installed, upgraded, or removed.
0 packages upgraded, 0 newly installed, 0 to remove and 4 not upgraded.
Need to get 0 B of archives. After unpacking 0 B will be used.


How to fix unfixable broken package dependencies on Debian GNU / Linux – Fix package mismatch

Wednesday, September 27th, 2017


I just tried to upgrade my Debian Wheezy 7 to the latest stable Debian Stretch 9 by not thinking too much and just changing the word wheezy with stretch in /etc/apt/sources.list so onwards on it looked like so:

cat /etc/apt/sources.list


deb stretch main contrib non-free
deb-src stretch main

deb stretch/updates main
deb-src stretch/updates main 

# stretch-updates, previously known as 'volatile'
##deb stretch-updates main
deb-src stretch-updates main


I also make sure all the defined Google Chrome / Opera / Skype and Squeeze Backports repositories existent in /etc/apt/sources.list.d directory files which in my case were like so;


root@noah:/etc/apt/sources.list.d# ls
google-chrome.list  opera-stable.list  squeeze-backports.list
opera.list          skype-stable.list

 were commented out because they were producing extra apt update errors …

And afterwards ran as usual:


apt-get update
apt-get –yes upgrade

The upgrade command executed fine and a lot of packages got downloaded and reinstalled without much issue, so I thought everything would be fine and just proceeded with the attempt to finalize the distribution major release 7 to major release 9 by running:


apt-get –yes dist-upgrade

But guess what now I got some dependency errors with cron and other installed packages that depend on package versions that are not going to be installed as the apt-get tool informed me.

I tried to out-smart the dpkg dependency system and removed all the packages reporting to have a missing dependencies with a short for bash loop after duming all the problematic packages showing dependency issues with commands such as:

apt-get -f dist-upgrade >> out.txt
for i in $(cat out.txt); awk '{ print $1 }' >> to_delete.txt; done

Before proceeding further I had to manually edit few lines in a text editor to remove some of the junk left from apt-get too.

So i was brave and just removed the dependency missing packages with following other for loop:


for i in $(cat to_delete.txt); do dpkg -r –force-all $i; done

Now I was hoping that rerunning:


apt-get autoremove

dpkg --configure -a

apt-get update -f
apt-get dist-upgrade -f

would no longer complain and I would just install the removed packages in another for shell loop once every other packages gets installed.

But guess what I was wrong … the system entered into another bunch of depedency terribly issues and messed up so badly that there were at least 50 packages reporting to have a missing / broken or uninstallable deb version depedency …

I got totally Angry, I knew already from experience that just trying to jump over while skipping a major release e.g. upgrade Debian 7 to Debian 9, instead of first upgrading to Debian 8 Linux and then upgrading Debian 8 to Debian 9 have always produced the same mess but I was lame and stupid again to f**k it up and I was out of mind swearing (a truly bad habid I'm not proud of) …

So as the notebook with Linux so far was perfectly working with Debian 7 and had a tons of old installed software and I was in a state where if I restart the system it was very likely my Thinkpad r61 laptop won't boot at all, I googled around to find a solution unfortunately without any luck, so finally I used the good old and tested method to DO IT MYSELF and Find the Fix without Uncle Google's help and by God's grace I did, after experimenting a while with the aptitude package / install / remove update tool without much success, finally I find the solution to the totally messed up Debian package dependencies and it all came to a simply reverting back my /etc/apt/source.list to look like following:


# deb cdrom:[Debian GNU/Linux 7.0.0 _Wheezy_ – Official amd64 CD Binary-1 20130504-14:44]/ wheezy main

##deb cdrom:[Debian GNU/Linux 7.0.0 _Wheezy_ – Official amd64 CD Binary-1 20130504-14:44]/ wheezy main

deb wheezy main contrib non-free
deb-src wheezy main

deb wheezy/updates main
deb-src wheezy/updates main

# wheezy-updates, previously known as 'volatile'
##deb wheezy-updates main
deb-src wheezy-updates main
##deb wheezy main non-free
#deb wheezy-backports main
###deb wheezy-backports main contrib non-free
##deb wheezy main
#deb wheezy/volatile main
###deb wheezy main non-free

run of the following two depedency fix commands !!!!


aptitude upgrade –full-resolver

aptitude full-upgrade –full-resolver

After a while a Debian LinuxOS system downgrade was initated and the missing packages were found, downloaded from the correct wheezy repositories and all broken and missing dependencies packages were fixed !!! HOORAY IT WORKS AGAIN!!


Play Heroes of Might and Magic 3 on Android – Another great strategy game classic to play on Android mobile phone

Tuesday, July 22nd, 2014

Android mobile platform is awesome
as it resurrects the days of true gaming by enabling us to play ports of most influential computer games of our youth.
A short time after figuring out about existence of my favourite computer strategy game Heroes of Might and Magic 2 for Android mobiel devices.


I got curious whether someone had ported also the successor verion of Heroes of Might and Magic II  strategy role play turn-based games sequels – Heroes of Might and Magic (HOMM) III.
And was striken even Heroes of Might and Magic 3 game port is already available!
To play HOMM 3 you need to install VCMI application on your android phone or tablet, if you search it directly from GooglePlayer Store you will notice 2 VCMI versions, be careful as one of the applications is already depreciated and is not working. VCMI app is based on the open source VCMI engine (check out VCMI wiki here) – attempt to rewrite entire Heroes of Might and Magic 3 from scratch!

To play Heroes 3 on your Android device you will need to have original HoMM3 files.
Once you run VCMI app for a first time you will be get a pop-up instructing you to follow Game files Android install instructions from this page.


Heroes of Might and Magic 3's graphics and music (all stored in the modern for that time mp3 music format) was strikingly innovative for its release time (HOMM3 was published in y. 1999).


I still remember the many days and night spent together with friends and my sister playing maniacally Heroes 3. Though Heroes 3 doesn't make in imprint in my mind just like Heroes 2, from my gamer period years 1999 to 2001.

Heroes 3 was one of the games I and many of my friends (at that time aged 17 – 18 yeard old). The game plot is not that different from Heroes 3 – you command an army of mythical creatures from different nations mythologies and from various ages. Heroes are given a choice of skills to upgrade upon levelling up, as well as becoming better at combat or the use of magic. Yiou command the hero over a map with sources, you get the resources to build new structures and army. There are artifacts all around you can get to make your hero strength greater, there is level of wisdom and varios other skills you can raise. You can buy multiple heroes and build strong armies and fight other player armies. Each player has his own number of belongings (castles, villages, mines etc.). The game includes plenty of mystic beings. Just like Heroes 2, a different "races" / castles / armies exist, just to mention few you can play with: Castle, Rampant, Tower, Inferno, Necropolis, Dungeon, Stronghold, Fortress Conflux


Game Storyline

Heroes 3 story line unfolds across 7 playable campaigns all set upon the imaginery continent of Antagarich. During the campaigns, the story is told from alternating points of view, giving players the opportunity to play as each of the town alignments.

Following the disappearance of King Roland Ironfist of Enroth, his wife, Queen Catherine, is left to rule the realm. In the meantime, her father, King Gryphonheart of Erathia, is assassinated. Without their beloved King, the kingdom of Erathia falls to the dark forces of Nighon and Eeofol. Queen Catherine returns home to Antagarich seeking to rally the people of her homeland and lead them against the evil that has ravaged their nation.

Erathia's capital of Steadwick is sacked by the dungeon lords of Nighon and the Kreegans of Eeofol. Meanwhile, the nations of Tatalia and Krewlod skirmish at the western border, seizing the chance to expand their territory. Catherine's first task is to establish a foothold in the conquered kingdom by enlisting the aid of allies. The wizards of Bracada and the elves of AvLee answer her call, and together they push towards Steadwick and eventually retake it, quickly quelling the border war in the west. Soon after, Lucifer Kreegan, a commander in the Eeofol armies, sends an envoy to Erathia claiming that Roland Ironfist is captive within their territories. AvLee invades Eeofol, but fails to rescue Roland, who is transported to their northern holdings. Afterwards, Catherine invades Nighon, pushing the dungeon armies back to their island home.

In the meantime, the necromancers of Deyja, having been responsible for the assassination of King Gryphonheart, plot to revive his corpse as a lich. They plan to use his wisdom in leading their own armies of the undead. However, King Gryphonheart's will proves too much for the necromancers even in his corrupted state, and he becomes a rogue lich. Having little other recourse, Queen Catherine is forced to ally herself with the necromancers and together they set out to destroy the lich of King Gryphonheart before he becomes too powerful.

A final bonus campaign, accessible only after the main campaigns are complete, tells the story of separatists living in the Contested Lands, a war-torn border between Erathia and AvLee. Tired of the skirmishes that bring unrest to their homelands, they join together to fight for independence from the two large kingdoms. It is later implied that this rising was orchestrated by Archibald Ironfist, the antagonist of Heroes of Might and Magic II.

New FreeBSD version is out – Hello FreeBSD 9.2

Tuesday, October 1st, 2013

new version of FreeBSD is out FreeBSD 9.2

FreeBSD 9.2 is out today. There are mostly improvements in FreeBSD's ZFS. As usual BSD packages are updated with new ones. This version of BSD does not include anything revolutionary. Below are all the major changes in the distro. A list of all new introduced supports in that release as usual is in BSD's release notes

To all BSD users – Happy new BSD release 🙂

How to do world and kernel binary upgrade of FreeBSD 7.2 RELEASE to FreeBSD 9.0

Tuesday, October 2nd, 2012

FreeBSD 7.2 to FreeBSD 9.0 kernel world and kernel binary upgrade fbsd logo

1. Use FreeBSD upgrade with 9.0-RELEASE as an argument

freebsd# freebsd-update upgrade -r 9.0-RELEASE

Note that you will get on screen an error message like so:

The update metadata is correctly signed, but failed an integrity check.
Cowardly refusing to proceed any further.

You can safely ignore the message but anyways it is good to do following substitution in freebsd-update sript:

2. Patch freebsd-update script with sed

freebsd# sed -i '' -e 's/=_/=%@_/' /usr/sbin/freebsd-update

After that, run freebsd-update, one more time:

freebsd# freebsd-update upgrade -r 9.0-RELEASE

3. Confirm merges and changes from 7.2 to 9.0

Here during the upgrade you will be prompted for about 20-30 questions, which in most cases will be okay if you answer with yes. Most questions, are just notifications that in FreeBSD 9.0, some extra users were added some version release numbers are changed and the old files need to get merged with the new ones. It is good idea to read all the prompts and be sure to know what you’re doing before answering. Anyhow in my case I was quite in hurry so I simply did yes and q (to quit each of the diff notification screens pop-ping up after each yes answer.

4. Install all the freebsd-update upgrade fetched binaries

Once this process is completed you can safely install FBSD 9.0 kernel and world binaries:

freebsd# freebsd-update install

5. Restart the system to test if FreeBSD 9.0 RELEASE just installed new kernel boots

To test if all is okay with the update restart system:

# shutdown -r now

After system boots, do uname and uptime to assure system boots with 9.0 kernel:

freebsd# uptime
7:37PM up 2 days, 22:37, 1 user, load averages: 1.05, 1.02, 1.00
freebsd# uname -a;
FreeBSD freebsd 9.0-RELEASE-p3 FreeBSD 9.0-RELEASE-p3 #0: Tue Jun 12 01:47:53 UTC 2012 i386

5. Finalize binary and world upgrade

Then to finalize the binary BSD world and kernel update once again issue:

freebsd# freebsd-update install
Please rebuild all installed 3rd party software (e.g., programs
installed from the ports tree) and then run
"/usr/sbin/freebsd-update install" again to
finish installing updates.

freebsd# freebsd-update install

That’s all FreeBSD 7.2 -> 9.0 (kernel and world) upgrade is succesful. After the upgrade some packages might not be working and you will have to check and manually update ports which are not working (due to linked to old FreeBSD 7.2 world libraries and so on). It is also good to upgrade all installed ports. I will explain how I did ports upgrade a separate article. Cheers 😉

Install Google Chrome Web Browser Chrome on 32 and 64 bit Debian Lenny and Squeeze/Sid Linux

Sunday, July 25th, 2010

Linux Tux Google Chrome

I’ve decided to write a short post on how to install in a quick manner Google Chrome on Debian GNU/Linux.

There are few reasons why you would consider installing Chrome, however the most obvious one is is the browser speed.
I should admit the browsing experience with Chrome looks and feels far better compared to Iceweasel (e.g. Firefox) on Debian.
It could be that web loading speed performance with Epiphany or Opera is similar to Chrome in terms of velocity, apart from the faster browser experience with Google Chrome, I’ve seen reports online that sometimes Google Chrome behaves better when it comes to multimedia audio and video streams online.

Another thing I notice in Google Chrome is that it’s generally much lighter and loads the base browser times faster than Iceweasel.

The most accurate way to install Chrome on Debian Linux is using Google Linux repositories

So to install add to your /etc/apt/sources.list the following google linux repo

# Google software repository
deb stable non-free main


debian-deskop:~# echo "deb stable non-free main" >> /etc/apt/sources.list

Then update your repositories list with apt-get:

debian-desktop:~# apt-get update

Next choose your google chrome preferred release between the available (beta, stable and unstrable) version.
I’ve chose to install the Google Chrome stable release apt-getting it like shown below

debian-desktop:~# apt-get install google-chrome-stable

Now the google chrome will be ready to use to start using it either start it up from the Gnome / KDE Menus or exec the command:

debian-desktop:~$ google-chrome

So far so good, you will have now a gnome browser, however what is really irritating is the default behaviour of the chrome install by default it tampers with the default browser configured for my whole Linux desktop system in other words it automatically links:

/etc/alternatives/gnome-www-browser to -> /usr/bin/google-chrome as well as,
/etc/alternatives/x-www-browser to -> /usr/bin/google-chrome

Well I wasn’t happy with that unwarranted install behaviour of Google Chrome therefore I decided to reverse my default Gnome and System Browser back to Epiphany.

First I removed the links to /usr/bin/google-chrome

debian-desktop:~# rm -f /etc/alternatives/gnome-www-browser
debian-desktop:~# rm -f /etc/alternatives/x-www-browser

And thereafter I linked it back to Epiphany

debian-desktop:~# ln -sf /usr/bin/epiphany /etc/alternatives/gnome-www-browser
debian-desktop:~# ln -sf /usr/bin/epiphany /etc/alternatives/x-www-browser

GNU / Linux Widgets (gdesklets, screenlets) – Apple MacoSX / Microsoft Vista like Widgets

Tuesday, September 15th, 2009

Screenlet Widget
I’m staying in a friend’s place for few days. Nasko a friend of mine has apple pc and showed me some nice features of the apple MacBook’s Mac OS X. One of the features I liked was the Apple Widgets which are helpful in facilitating the work with your pc. The same widgets are also included in Windows Vista (I always disabled that when used Vista).
Anyways I wondered if there is a way to have the same shiny widgets running on my Debian GNU/Linux.
I first found Gdesklets which basicly is a collection of Widgets for the Linux Gnome desktop written in Python. To run the gdesklet after installation
I had to issue the command:
$ gdesklets .Then in the tray a small tray puzzle icon appears. I sort of wondered a bit until I figured out how to add some gdesklet widgets.
To do that I had to select
“Manage Desklets” and through the gdesklets shell
to click twice the widget I would like to add to the desktop and thendrag it to the exact desktop place I would like it to have it positioned.
I have to emphasize gdesklets widgets are very, very buggy. Many of the widgets I tried crashed the whole application.
After which I had to manually kill the gdesklets app
and delete all it’s temporary files located in
~/.gdesklets directory. Many of the apps that didn’t crashed the gdesklets that required extra data from lmsensors never worked even though I have working version of lmsensors.
I suspect some of the widgets which failed to gather data from lmsensors cause
My notebook is Lenovo Thinkpad R61 and uses some custom features from the thinkpad_acpi kernel module
. Another possible reason for the crashes and misworkings of some components of gdesklets could be because I’m currently running Debian Unstable.

After being a bit disappointment from gdesklets experience.
I went looking further for some Linux widgets alternative.
Next widget related gnome prog I stucked on was jackfield . This one is said to have worked with Apple’s Widgets I don’t believe it does any more since it’s not actively developed anymore.
I tried the jackfield python program with no luck. The untarred archive of it was really messy and what was even worse was it lacked any documentation.
Hence I continued my quest for widgets just to came across a real working Gnome widget application.
Just to find Screenlets! .
I’ve red somewhere that Screenlets is based on jacfield.
The current release of Gnome Screenlets which by the way is officially part of is 0.1.2. I was pleased to find the application worked pretty decent.
Screenlets includes many, many widgets:
Here is a link containg a list of all the screenlets widgets
.If you like to have a general idea of how screenlets looks like please check out the screenlet in action screenshots