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.

6 thoughts on “Crossgrading from Fedora 22 i686 to x86_64”

  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:
    https://lists.gnu.org/archive/html/emacs-devel/2015-02/msg00482.html
    tried clicking the ling and wget — no difference.

    Thanks,
    T

    1. Hi Thoralf,

      This works for me, on Emacs 24.3.1:

      mkdir test
      HOME=`pwd`/test emacs -Q
      M-: (setq package-archives ‘((“melpa” . “http://melpa.org/packages/”)))
      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.

      Thomas

  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”.

    Thanks,
    T

    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,
        T

        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 “https://mail.gnu.org/ews/exchange.asmx”.

          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.

Comments are closed.