Crossgrading from Fedora 22 i686 to x86_64

I’ve always upgraded my Fedora laptop incrementally using the recommended tools (yum, preupgrade, fedup). For this reason, my initial decision to install i686 Fedora (back when 32-bit compatibility was important) has carried through, and I’ve always used i686 Fedora, even though the CPU supports x86_64.

Recently I wanted to try out Mezzano in a virtual machine, but it is x86_64-only. Obviously, virtualization tools don’t support running an x86_64 guest on an i686 host, so I shelved the experiment.

Then I found a use for Docker (testing Emacs HTTP authentication schemes), and wanted to try it out. But I ran into this surprising limitation: Docker is 64-bit only.

At this point I had two motivators to move to x86_64, but no desire to wipe my system. I discovered an interesting new term, “crossgrading”, when I found these instructions: Cross-grading from i686 to x86_64: it is possible (but unsupported). They were written for Fedora 14, but I decided to try them out on Fedora 22 (after backing up all my data).

Long story short, careful application of dnf download and rpm --force (and an rpm database rebuild) resulted in a still-working x86_64 Fedora 22 system, with no need to wipe the drive. I’m glad Roberto Ragusa took the time to write up those instructions, and I wanted to document that they roughly still apply, eight Fedora versions later.

Join the Conversation


  1. Hi Thomas,

    I am having problems to get calfw-20150206.1648.tar into Emacs Emacs 24.3.1. On
    M-x package-install-file calfw-20150206.1648.tar
    I get a
    “Can’t read whole string” from emacs.

    The, on
    M-x package-install-file excorporate-0.6.1.tar
    I naturally get
    “Package ‘calfw-20150206.1648.tar’ is unavailable”

    Download was from here:
    tried clicking the ling and wget — no difference.


    1. Hi Thoralf,

      This works for me, on Emacs 24.3.1:

      mkdir test
      HOME=`pwd`/test emacs -Q
      M-: (setq package-archives ‘((“melpa” . “”)))
      M-x package-install RET calfw
      M-x package-install-file RET excorporate-0.6.1.tar
      M-x excorporate

      This installs calfw-20150923.1949, not the 20150206 version you were trying.


  2. Thanks Thomas,

    I managed to get calfw-20150923.1949 into emacs, but excorporate-0.6.1 does not like it. Inside emacs, on ‘M-x package-install-file RET ~/excorporate-0.6.1.tar’ (without quotes) I get
    ” `calfw-20141030.813′ is unavailable”.


    1. Hmm, I’m not sure why it works for me but not for you. Are you running “emacs -Q”?

      I guess you could try untar’ing excorporate-0.6.1.tar, replacing the (calfw “20141030.813”) form with (calfw “20150923.1949”) in excorporate-pkg.el, re-tar’ing excorporate-0.6.1.tar and M-x package-install-file it again. But I wouldn’t expect you to have to do that.

      1. Thanks, I got excorporate into emacs; editing excorporate-pkg.el did the trick. Struggling with “Excorporate: Autodiscovery ran out of URLs to try” now.

        The discussions in this blog are too high level fore me — sorry, I have only been trying emacs for a week. Could youlp me out please: where and how do I set the EWS URL manually?

        Many thanks,

        1. Sure. It’s probably best if you start learning the “Customize” interface of Emacs, since it’s intended to walk you through such configuration tasks. C-h i d m Emacs RET m Customization will take you to the Info manual entry on customization.

          In this case, after trying:

          M-x excorporate

          (just to make sure excorporate is loaded), do:

          C-x v excorporate-configuration RET

          Move point to the “customize” link, and press RET.

          From the “Value Menu” select “Skip autodiscovery”. Then in the “Exchange mail address:” field enter the email address you use to log in to the Exchange server, and in “Exchange Web Services URL:” enter the EWS URL, something like “”.

          Move point to “State”, press RET, and then 0, to set this for the current session.

          Then retry:

          M-x excorporate

          If that works, got back to the customize menu and set State to 1 to save the setting for future sessions.

Leave a comment

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.