You are not logged in.

#1 2013-06-19 14:38:26

D4ve
Member
Registered: 2012-08-02
Posts: 209

[Solved] Updating nearly 7 month old installation

Hi, my second pc hasn't been updated for nearly 7 month and i don't know if i can update it without breaking anything.

Latest pacman.log-entries (just for information):

$ tail -n 50 /var/log/pacman.log 
[2012-12-25 00:24] Running 'pacman-color -Syu'
[2012-12-25 00:24] synchronizing package lists
[2012-12-25 00:24] starting full system upgrade
[2012-12-27 18:03] Running 'pacman-color -Syu'
[2012-12-27 18:03] synchronizing package lists
[2012-12-27 18:03] starting full system upgrade
[2012-12-27 18:05] upgraded graphviz (2.28.0-11 -> 2.28.0-12)
[2012-12-27 18:05] installed libutempter (1.1.6-1)
[2012-12-27 18:05] upgraded kdelibs (4.9.4-3 -> 4.9.4-4)
[2012-12-27 18:05] upgraded libpurple (2.10.6-2 -> 2.10.6-3)
[2012-12-27 18:05] upgraded postgresql-libs (9.2.2-1 -> 9.2.2-2)
[2012-12-27 18:05] upgraded python (3.3.0-2 -> 3.3.0-3)
[2012-12-27 18:05] upgraded python2 (2.7.3-3 -> 2.7.3-4)
[2012-12-27 18:05] upgraded python2-imaging (1.1.7-5 -> 1.1.7-7)
[2012-12-27 18:05] upgraded sed (4.2.1-4 -> 4.2.2-1)
$

What i've tried:

$ sudo pacman -Syu
WARNING: R00T-permissions without password-request
:: Synchronizing package databases...
 core is up to date
 extra is up to date
 community is up to date
 multilib is up to date
 testing is up to date
:: The following packages should be upgraded first :
    pacman
:: Do you want to cancel the current operation
:: and upgrade these packages now? [Y/n] 

resolving dependencies...
looking for inter-conflicts...

Targets (6): bash-4.2.045-4  filesystem-2013.05-2  glibc-2.17-6  libarchive-3.1.2-1  linux-api-headers-3.8.4-1  pacman-4.1.1-1

Total Installed Size:   50.51 MiB
Net Upgrade Size:       -1.83 MiB

Proceed with installation? [Y/n] 
(6/6) checking package integrity                                                                                               [#############################################################################] 100%
(6/6) loading package files                                                                                                    [#############################################################################] 100%
(6/6) checking for file conflicts                                                                                              [#############################################################################] 100%
error: failed to commit transaction (conflicting files)
filesystem: /bin exists in filesystem
filesystem: /sbin exists in filesystem
filesystem: /usr/sbin exists in filesystem
Errors occurred, no packages were upgraded.
$ sudo pacman -Syu --ignore filesystem,bash
WARNING: R00T-permissions without password-request
:: Synchronizing package databases...
 core is up to date
 extra is up to date
 community is up to date
 multilib is up to date
 testing is up to date
:: The following packages should be upgraded first :
    pacman
:: Do you want to cancel the current operation
:: and upgrade these packages now? [Y/n] 

resolving dependencies...
warning: ignoring package bash-4.2.045-4
warning: cannot resolve "bash>=4.2.042-2", a dependency of "pacman"
warning: ignoring package filesystem-2013.05-2
warning: cannot resolve "filesystem>=2013.01", a dependency of "glibc"
:: The following package cannot be upgraded due to unresolvable dependencies:
      pacman

Do you want to skip the above package for this upgrade? [y/N] 
error: failed to prepare transaction (unexpected error)
$ sudo pacman -Syu --ignore filesystem,bash
WARNING: R00T-permissions without password-request
:: Synchronizing package databases...
 core is up to date
 extra is up to date
 community is up to date
 multilib is up to date
 testing is up to date
:: The following packages should be upgraded first :
    pacman
:: Do you want to cancel the current operation
:: and upgrade these packages now? [Y/n] n

:: Starting full system upgrade...
warning: bash: ignoring package upgrade (4.2.039-1 => 4.2.045-4)
warning: filesystem: ignoring package upgrade (2012.12-1 => 2013.05-2)
:: Replace gcalctool with extra/gnome-calculator? [Y/n] 
:: Replace icedtea-web with extra/icedtea-web-java7? [Y/n] 
:: Replace khrplatform-devel with extra/mesa? [Y/n] 
:: Replace lib32-libgl with multilib/lib32-mesa-libgl? [Y/n] 
:: Replace lib32-libglapi with multilib/lib32-mesa? [Y/n] 
:: Replace libegl with extra/mesa? [Y/n] 
:: Replace libgbm with extra/mesa? [Y/n] 
:: Replace libglapi with extra/mesa? [Y/n] 
:: Replace libsoup-gnome with extra/libsoup? [Y/n] 
:: Replace nss-myhostname with core/systemd? [Y/n] 
:: Replace ntfsprogs with extra/ntfs-3g? [Y/n] 
:: Replace openjdk6 with extra/jdk7-openjdk? [Y/n] 
:: Replace protobuf-python with community/python2-protobuf? [Y/n] 
:: Replace pyqt with extra/python-pyqt4? [Y/n] 
:: Replace pyqt-common with extra/pyqt4-common? [Y/n] 
:: Replace python2-pyqt with extra/python2-pyqt4? [Y/n] 
:: Replace qt with extra/qt4? [Y/n] 
:: Replace webkitgtk3 with extra/webkitgtk? [Y/n] 
resolving dependencies...
warning: ignoring package filesystem-2013.05-2
warning: cannot resolve "filesystem>=2013.01", a dependency of "glibc"
warning: ignoring package filesystem-2013.05-2
warning: cannot resolve "filesystem>=2013.01", a dependency of "glibc"
warning: ignoring package filesystem-2013.05-2
warning: cannot resolve "filesystem>=2013.01", a dependency of "glibc"
warning: ignoring package filesystem-2013.05-2
warning: cannot resolve "filesystem>=2013.01", a dependency of "glibc"
:: There are 3 providers available for libgl:
:: Repository extra
   1) mesa-libgl  2) nvidia-304xx-utils  3) nvidia-libgl

Enter a number (default=1): 1
warning: ignoring package filesystem-2013.05-2
warning: cannot resolve "filesystem>=2013.01", a dependency of "glibc"
warning: ignoring package filesystem-2013.05-2
warning: cannot resolve "filesystem>=2013.01", a dependency of "glibc"
warning: ignoring package filesystem-2013.05-2
warning: cannot resolve "filesystem>=2013.01", a dependency of "glibc"
warning: ignoring package filesystem-2013.05-2
warning: cannot resolve "filesystem>=2013.01", a dependency of "glibc"
warning: ignoring package filesystem-2013.05-2
warning: cannot resolve "filesystem>=2013.01", a dependency of "glibc"
warning: ignoring package filesystem-2013.05-2
warning: cannot resolve "filesystem>=2013.01", a dependency of "glibc"
:: There are 3 providers available for libgl:
:: Repository extra
   1) mesa-libgl  2) nvidia-304xx-utils  3) nvidia-libgl

Enter a number (default=1): 2
warning: ignoring package filesystem-2013.05-2
warning: cannot resolve "filesystem>=2013.01", a dependency of "glibc"
warning: ignoring package filesystem-2013.05-2
warning: cannot resolve "filesystem>=2013.01", a dependency of "glibc"
:: There are 3 providers available for libgl:
:: Repository extra
   1) mesa-libgl  2) nvidia-304xx-utils  3) nvidia-libgl

Enter a number (default=1): 3
warning: ignoring package filesystem-2013.05-2
warning: cannot resolve "filesystem>=2013.01", a dependency of "glibc"
warning: ignoring package filesystem-2013.05-2
warning: cannot resolve "filesystem>=2013.01", a dependency of "glibc"
warning: ignoring package filesystem-2013.05-2
warning: cannot resolve "filesystem>=2013.01", a dependency of "glibc"
:: There are 3 providers available for libgl:
:: Repository extra
   1) mesa-libgl  2) nvidia-304xx-utils  3) nvidia-libgl

Enter a number (default=1): ^C
Interrupt signal received
$ 

I don't expect any real problems except this: Binaries move to /usr/bin

So, can anyone help me upgrading this machine without breaking it? Or should i just reinstall it? I know archlinux should be updated as often as possible and in future i will do that (i promise), but at the moment i have no idea what to do.

EDIT: Maybe that could be useful: filesystem 2012.12-1, bash 4.2.039-1, glibc 2.16.0-5, pacman 4.0.3-5

Changed quote tags to code tags -- Inxsible

Last edited by D4ve (2013-06-20 17:10:36)

Offline

#2 2013-06-19 14:43:49

progandy
Member
Registered: 2012-05-17
Posts: 2,151

Re: [Solved] Updating nearly 7 month old installation

One possible solution is this:
- choose the first newsitem after your last update.
- use the ARM snapshot for this day as the mirror (http://arm.konnichi.com/$year/$month/$d … o/os/$arch)
- follow the newsitem and update
- do the same with the other newsitems.

Offline

#3 2013-06-19 14:45:10

opt1mus
Member
From: UK
Registered: 2011-12-31
Posts: 197
Website

Re: [Solved] Updating nearly 7 month old installation

You could upgrade in stages, using the Arch Rollback Machine in conjuction with the news articles.

Offline

#4 2013-06-19 14:59:40

Scimmia
Bug Wrangler
Registered: 2012-09-01
Posts: 4,977

Re: [Solved] Updating nearly 7 month old installation

https://bbs.archlinux.org/viewtopic.php?id=164491

Last edited by Scimmia (2013-06-19 15:11:00)

Offline

#5 2013-06-19 17:28:51

Inxsible
Forum Fellow
From: Chicago
Registered: 2008-06-09
Posts: 9,071

Re: [Solved] Updating nearly 7 month old installation

please use code tags as opposed to quote tags. Understand, that there is a difference !


Forum Rules

There's no such thing as a stupid question, but there sure are a lot of inquisitive idiots !

Offline

#6 2013-06-20 17:10:07

D4ve
Member
Registered: 2012-08-02
Posts: 209

Re: [Solved] Updating nearly 7 month old installation

Inxsible wrote:

please use code tags as opposed to quote tags. Understand, that there is a difference !

Ok, i will do that in future.

@all: Thanks for your help, i didn't know that using ARM is so easy.

Offline

#7 2014-02-26 20:21:17

apeiro
Daddy
From: Victoria, BC, Canada
Registered: 2002-08-12
Posts: 771
Website

Re: [Solved] Updating nearly 7 month old installation

I actually went through this process with an old machine today.  Unfortunately, it was dusty enough that ARM didn't go back far enough for me (looks like it only goes to August 2013 right now).

This server did have systemd running, so I was in a good spot there.  However, it hadn't been upgraded at all in 2013, so pacman was stumbling on this particular upgrade point: https://www.archlinux.org/news/update-f … -together/

Of course, that coupled with the everything-now-goes-in-/usr/bin move made things tricky.

One option is to just grab the current version of all packages and then reboot into a rescue environment and install them all twice (twice, because the first time 'round, some install scriptlets may not execute correctly).  But I wanted to avoid taking down the websites if possible, so I tried the upgrade online, knowing I could fallback to a rescue environment if I pooched things.

So here's what I did.  At a high level, I'm basically re-installing all packages on the system.

1. First, have a "busybox sh" process running in a separate SSH connection. Because hey, you never know if you might need it should something go wrong. Busybox is a static binary, so if things go sideways, you should still have some functionality there. Also, make sure it's 4755 so it has the permission to do root-y things.

2. Now, build a list of all your currently-installed packages and get them all downloaded.

# pacman -Q | cut -d' ' -f1 >pkglist
# pacman -Scc
# pacman -Sw `cat pkglist`

Now, some packages in that list are probably outdated and have since been removed from the Arch repos. If pacman complains that it can't find something (eg: libdownload), then remove it from pkglist and try the `pacman -Sw` line again. Do this until it succeeds.

Also, pacman will obviously not find any AUR packages or other customs, so you'll have to deal with these outside of this process (eg: remove them and re-install them after the sysupgrade is successful).

3. Move old binaries out of the way so the new filesystem package doesn't choke when it sees that /bin, /sbin, and /usr/sbin already exist. To do this, I simply stuff them in an /old folder and add that dir to my $PATH, just in case they're needed before the upgrade completes.

# export PATH=$PATH:/old/bin:/old/sbin:/old/usr/sbin
# mkdir -p /old/usr
# mv /bin /old
# mv /sbin /old
# mv /usr/sbin /old/usr

4. Okay, I've got my old bins out of the way and I've got my up-to-date package files downloaded. Let's install. Make sure filesystem and friends go in first, so the /bin, /sbin, and /usr/sbin symlinks are in-place.  Then do the rest.

# cd /var/cache/pacman/pkg
# pacman -S filesystem bash glibc
# pacamn -U *

If you see some "failed to exec" type of messages during the upgrade, then run the `pacman -U *` command a second time. It's likely that some scriptlets couldn't run correctly do to the transient nature of your system at this time.

If this all worked, then you can go about the business of secondary tasks: Re-installing AUR packages (if necessary), removing dcron and installing cronie in its place, etc etc.

Anyway, this process worked pretty flawlessly for me. But as rolling release systems go, YMMV depending on how old your system state is. I wouldn't trust this technique if you're pre-systemd, for example.

And always have a backup plan.


- J

Offline

#8 2014-02-27 04:11:28

Allan
Developer
From: Brisbane, AU
Registered: 2007-06-09
Posts: 10,408
Website

Re: [Solved] Updating nearly 7 month old installation

apeiro wrote:
# pacman -Q | cut -d' ' -f1 >pkglist

*cough*   pacman -Qq  *cough*

Now I have to wonder if that option was added at some stage...   tongue

Offline

#9 2014-02-27 04:25:15

apeiro
Daddy
From: Victoria, BC, Canada
Registered: 2002-08-12
Posts: 771
Website

Re: [Solved] Updating nearly 7 month old installation

Kids these days, with their convenience switches.

Back in my day, we crafted our pipes with love, with a portrait of McIlroy above our keyboards. wink

Offline

Board footer

Powered by FluxBB