November system update did a fair bit of damage

I've been running a Debian server for a couple of years, but this is my first experiment with a rolling-style desktop distro.

I installed Manjaro a couple of weeks ago and have been gettnig things set up. A couple of days ago I came home to a message saying "399 updates" were waiting to be installed. Having checked the forum I didn't see any specific warnings about this round of updates being problematic, but I did see several exhortations to "always install the WHOLE update" otherwise dependencies might not be met (I thought that was the job of a package manager, but hey...)

However, running the update (pacman -Syu) caused a number of problems.

  • Initially the update warned about a circular dependency on bashrc, but it seemed to be able to sort that out automatically

  • The update then failed about 20 items in with the error: failed to commit transaction (invalid or corrupted package) However it doesn't say which one of a very long list of packages in the update is the one that's causing the problem. I checked /var/log/pacman.log but that gives no hint where the error is, in fact there are no errors shown in the log, or any indication the upgrade did not run to completion.

  • After running the update thunderbird will no longer start. The error is-

XPCOMGlueLoad error for file /usr/lib/thunderbird/libxul.so:
libicui18n.so.65: cannot open shared object file: No such file or directory
Couldn't load XPCOM.

Some poking around with ldd seems to indicate several libraries may be missing-

ldd /usr/lib/thunderbird/libxul.so | grep "not found"
libldap60.so => not found
libprldap60.so => not found
libmozsandbox.so => not found
liblgpllibs.so => not found
libmozgtk.so => not found
libmozwayland.so => not found
libicui18n.so.65 => not found
libicuuc.so.65 => not found

Certainly the file referred to in the thunderbird error (libicui18n.so.65) is not present, so it seems that package is broken.

Uninstalling and reinstalling thunderbird doesn't fix the problem, so at this point i'm scratching my head.

So, some basic newbie questions-

  1. If a bulk update fails with something like a corrupted package error-
    a. How does one identify the corrupted package?
    b. Is it possible to run an upgrade of "everything EXCEPT one broken package" (if the list of components is many hundreds of items), or does the update need to be corrected and run as a whole?

  2. There is not a storm of messages from users hitting corrupted package errors, so it's not clear why I should have hit a problem. Should i switch to an alternative repo source (assuming such a thing exists), and if so, what's the best way to clean out any cached bad packages?

  3. With a fixed release distro, there is a specific release name or number to report problems against. In the rolling release model how is this done, do I raise a question on "The bundle of 399 updates that came out around the 9th of December" or is there a more precise way of defining the problem package?

And finally of course- Ideas on how to un-break my system. With the notes of what i've done so far I could probably wipe the install and re-do it from scratch in one or two evenings, but that woudl still leave me worried the next batch of updates would break the system. I can see I need to set up a "snapshot the system partitions before and after an upgrade" arrangement, but that still leaves the question of what to do if an upgrade breaks things, you roll it back, then how to tell when/if the system-breaking bugs are fixed and it's safe to try another upgrade?

that's the price you have to pay if you're riding a rolling-release. there is no guarantee that a major update breaks the sytem. a good backup-strategy is needed and my personal impression is that you should always wait a day before you install a major update. it happens that simple things have been overseen from the developers and they crush the system. not a big deal but in this case it's always better to be able for a restore of the system and waiting that it's fixed.

Deepin, Xfce, Gnome, KDE ...???

Please post output from terminal

$ inxi -Fxxxza --no-host

Update-

With some more searching I found a request in another forum thread that was similar to mine, and the solution was provided by none other than yourself @olli-

clear the local cache 'sudo pacman -Sc' update the mirrorlist and choose the fastest connections 'sudo pacman-mirrors --fasttrack ' and try it again 'sudo pacman -Syyu'

The good news is that cleared the mysterious bad package and after running the upgrade again it ran to completion and Thunderbird is back.

So, thanks @olli obviously. I will make a note of this procedure for future use. I will also definitely look into a pre-install snapshot setup.

I feel somewhat uncomfortable (a) Not knowing which package was corrupt in the original download, and therefore (b) unable to check the originating repo, and report a possible problem to them, but as you say I haven't absorbed the culture of the rolling release yet so maybe i'm worrying about the wrong things.

1 Like

To me, but I have used Arch based distros almost exclusively for quite awhile, the takeaway is not "corrupt package" but "failed download ".
Which means never mind what package, just refresh the mirror list and try again.

I have an alias that simply is "Syyu" that automatically ranks the latest updated mirrors closest to me before it runs sudo pacman -Syyu to minimize the risk of that.

3 Likes

If you are looking for a server-quality rolling distribution, I would look closer at Arch. Manjaro is a fine hobbyist distribution.

regards

4 Likes

I'm happy with Debian on the server. Since I set up a couple of years ago it's been stable and reliable, just what I want on a home server that the whole family depend on. I'm willing to take more risks on a personal PC to experiment with a nicer desktop, and more consideration for gaming etc.

2 Likes

If you want to risk properly I suggest you do the obvious (for a rolling release).. study...
In forum #faq you would find about your issue.
Also #technical-issues-and-assistance:tutorials has a lot.
And of course Manjaro and Arch wikis.

With complicated or confusing cases, the best is to ask in the Forum.

Welcome to Manjaro!


Long answer, so ... by experience.

Yes, but since it's risky, you should be expecting possible problems, depending the package (pacman.conf IgnorePkg=, after you read man pacman and man pacman.conf)

Actually, you have to initially configure a good mirrorlist (/etc/pacman.d/mirrorlist) with the most reliable and fast servers for your area. Then, if such a case, remove/deactivate the 1st server from the list and re-build package databases to continue

pacman -Syy  && pacman -Su
  or
pacman -Syyu

Check in Forum Announcements Stable (your) Branch.

2 Likes

How about any of the recent 'corrupted package' threads ?

.. yeah it seems some package in the recent update wasnt fully accepted by the mirrors [first time I have ever seen this affect many people .. still not sure if it is a specific package or mirror or what] .... but the solution has been posted about a dozen times already .. (forum search .. or even just sort by 'new')

Would you mind sharing how to create that alias?

The basic is two commands:

sudo pacman-mirrors --continent --api --protocol https
yay -Syyu

First row generates an up to date mirror list of all mirrors on your continent using the https protocol.
Second row runs the equivalent of sudo pacman -Syyu BUT also checks for updates to any AUR packages you have.

I have combined the two rows in an alias.

I don't use bash, but I think this is how you make an alias in bash:
Show Hidden Files in your file manager, go to your home folder and look for a file named .bashrc
In that file, at the very bottom, type the alias.
in this case add the row:
alias Syyu="sudo pacman-mirrors --continent --api --protocol https && yay -Syyu"

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.

Forum kindly sponsored by