Can I update Manjaro, which I last updated three years ago, without any problems?

Hi
The last time I updated Manjaro was 2023/01, of course, my system is not very powerful in terms of processing, the question I have is whether I can update without any problems or should I have a new installation? Does it work well on the old system in the current version?

Years ago I tested myself - sept. 2019 - taking a very, very old ISO in fact a 0.8.13 version of Manjaro and later the 15.12 version.

That will depend on your skills and your knowledge on how a Manjaro system work.

It gets harder the older the installation is - but a 2023/01 - it could be done - be sure to use pacman - NOT the GUI - as there is packages which will stall the installation.

Carefully read the feedback - and work slowly through the updates.

Consider the GPU used with the system - Nvidia is likely to need special care where Intel or AMD is easier to work with.

recommended for a less experienced user

If your knowledge and experience with system maintenance is limited, a new installation may be better - backup your data to an external USB - you will need two of them - one 8GB for ventoy and the other for data.

Sync the package manjaro-get-iso, udev-usb-sync and ventoy to your current system - I know, never use -y without -u but in this case it is OK to use only the -y argument to get the latest database.

The benefit of doing it this way is the verification done by the get-iso script - it verifies signature and verify the ISO by checksum after it has been copied to the target USB

sudo pacman -Sy manjaro-get-iso udev-usb-sync ventoy
  • Run ventoy and prepare one of the USB sticks.
  • Open the USB stick in the file manager - Ventoy partition
  • Open a terminal and run (if you want the full ISO add the -f argument)
get-iso xfce -o /run/media/$USER/Ventoy
  • Backup your your data to the second USB
  • Boot your system using the Ventoy formatted stick

references

[INFO] New package - udev-usb-sync
[INFO] New package - manjaro-get-iso application
https://ventoy.net

3 Likes

There’s only one way that you’ll find that out. It is not likely that you can update with NO problems at all… a lot of pacnew files have passed under your radar.

So think about what’s valuable in your old installation - system? or just personal? Maybe quite a few items in .config could be useful too.

  1. Backup anything you don’t want to lose.
  2. Snapshot the system, just in case.
  3. Go for it, starting with pacman only…
  4. Ah, fsk it - too much hassle - let’s just do a clean install :wink:

My vote - use the backups to restore any settings which still apply 3 years later… but carefully.

3 Likes

It’s not a matter of how “powerful” your system is - if it worked then, it’ll work now.

Have a backup of your personal data and then try - if you run into problems you can’t solve, you could ask.
But really and if you have to ask: fresh installation and play your data back.

2 Likes

Thank you very much for the help and the point that I have to follow, so I will start the update after backup

help to update

➤ sudo pacman -Syu                                                                                                                  
:: Synchronizing package databases...
 core is up to date
 extra is up to date
 community is up to date
 multilib is up to date
:: Starting full system upgrade...
:: Replace bashrc-manjaro with core/bash? [Y/n] y
:: Replace dbus-python with extra/python-dbus? [Y/n] y
:: Replace dstat with extra/dool? [Y/n] y
:: Replace grub-update with core/update-grub? [Y/n] y
:: Replace lib32-libva-mesa-driver with multilib/lib32-mesa? [Y/n] y
:: Replace lib32-mesa-vdpau with multilib/lib32-mesa? [Y/n] y
:: Replace libva-mesa-driver with extra/mesa? [Y/n] y
:: Replace linux-firmware with core/linux-firmware-meta? [Y/n] y
:: Replace mesa-vdpau with extra/mesa? [Y/n] y
:: Replace mlocate with extra/plocate? [Y/n] y
:: Replace onevpl with extra/libvpl? [Y/n] y
:: Replace p7zip with extra/7zip? [Y/n] y
:: Replace ruby-benchmark with extra/ruby? [Y/n] y
:: Replace ruby-bundledgems with extra/ruby-bundled-gems? [Y/n] y
:: Replace ruby-cgi with extra/ruby? [Y/n] y
:: Replace ruby-date with extra/ruby? [Y/n] y
:: Replace ruby-delegate with extra/ruby? [Y/n] y
:: Replace ruby-did_you_mean with extra/ruby? [Y/n] y
:: Replace ruby-digest with extra/ruby? [Y/n] y
:: Replace ruby-english with extra/ruby? [Y/n] y
:: Replace ruby-etc with extra/ruby? [Y/n] y
:: Replace ruby-fcntl with extra/ruby? [Y/n] y
:: Replace ruby-fiddle with extra/ruby? [Y/n] y
:: Replace ruby-fileutils with extra/ruby? [Y/n] 
:: Replace ruby-find with extra/ruby? [Y/n] y
:: Replace ruby-forwardable with extra/ruby? [Y/n] y
:: Replace ruby-io-console with extra/ruby? [Y/n] y
:: Replace ruby-io-nonblock with extra/ruby? [Y/n] y
:: Replace ruby-io-wait with extra/ruby? [Y/n] y
:: Replace ruby-ipaddr with extra/ruby? [Y/n] y
:: Replace ruby-json with extra/ruby? [Y/n] y
:: Replace ruby-logger with extra/ruby? [Y/n] y
:: Replace ruby-net-http with extra/ruby? [Y/n] y
:: Replace ruby-open-uri with extra/ruby? [Y/n] y
:: Replace ruby-psych with extra/ruby? [Y/n] y
:: Replace ruby-reline with extra/ruby? [Y/n] y
:: Replace ruby-ruby2_keywords with extra/ruby? [Y/n] y
:: Replace ruby-stringio with extra/ruby? [Y/n] y
:: Replace ruby-time with extra/ruby? [Y/n] y
:: Replace ruby-tmpdir with extra/ruby? [Y/n] y
:: Replace ruby-uri with extra/ruby? [Y/n] y
y:: Replace sdl2 with extra/sdl2-compat? [Y/n] 
y:: Replace tracker3 with extra/tinysparql? [Y/n] 
y:: Replace webrtc-audio-processing with extra/webrtc-audio-processing-0.3? [Y/n] n
resolving dependencies...
:: There are 2 providers available for qt6-multimedia-backend:
:: Repository extra
   1) qt6-multimedia-ffmpeg  2) qt6-multimedia-gstreamer

Enter a number (default=1): 
looking for conflicting packages...
error: unresolvable package conflicts detected
error: failed to prepare transaction (conflicting dependencies)
:: jre-openjdk and jre-openjdk-headless are in conflict

Will these errors cause a problem in the update process?

Enter a number (default=1): 
looking for conflicting packages...
warning: dependency cycle detected:
warning: pam will be installed before its systemd-libs dependency
warning: dependency cycle detected:
warning: harfbuzz will be installed before its freetype2 dependency
warning: dependency cycle detected:
warning: mesa will be installed before its libglvnd dependency
warning: dependency cycle detected:
warning: lib32-pam will be installed before its lib32-systemd dependency
warning: dependency cycle detected:
warning: lib32-keyutils will be installed before its lib32-krb5 dependency
warning: dependency cycle detected:
warning: lib32-harfbuzz will be installed before its lib32-freetype2 dependency
warning: dependency cycle detected:
warning: libcamera-ipa will be installed before its libcamera dependency
warning: dependency cycle detected:
warning: rubygems will be installed before its ruby dependency
warning: dependency cycle detected:
warning: mhwd-nvidia will be installed before its mhwd dependency
warning: dependency cycle detected:
warning: mhwd-nvidia-390xx will be installed before its mhwd dependency
warning: dependency cycle detected:
warning: mhwd-nvidia-470xx will be installed before its mhwd dependency
warning: dependency cycle detected:
warning: qt6-multimedia-ffmpeg will be installed before its qt6-multimedia dependency

Remove them and install jdk-openjdk instead.

You’ll probably have loads of .pacnew files. One of them is the /etc/pacman.conf.pacnew file, which drops the community.db repository. This repository is no longer being used — its contents have been merged into the extra.db repository.

Other things to watch out for…:

  • Do not merge /etc/shells.pacnew. It does not contain any entries for zsh, which is the default shell for terminal sessions in the GUI environment now. If you overwrite /etc/shells with the .pacnew, then you won’t be able to log in anymore.

  • Do not replace /etc/passwd and/or /etc/shadow by their respective .pacnews. The .pacnews only give you recommendations for a change to the path used for the root shell — from /bin/bash to /usr/bin/bash — because in Arch and derivatives, /bin is only a symbolic link to /usr/bin.


No. They aren’t even errors. They are only warnings.

4 Likes

Sure, actually - just purge anything that gets in the way first, keep a list, and work those out later :wink:

We’ve a mission to accomplish here… but sure, I have this:

jre-openjdk 24.0.1.u9-1 (30.0 MiB 172.3 MiB) (Installed)
    OpenJDK Java 24 full runtime environment
2 Likes

A JRE is a runtime environment only, while the JDK is the development kit, which includes the runtime environment and — crucially — anything it may depend on.

This is why it was recommended in the day to install jdk-openjdk instead of either of the conflicting packages. :wink:


@Usr2023, after updating — assuming that it all works out — install the following packages… :point_down:

sudo pacman -S install-grub manjaro-pacnew-checker

You may also want to clean out orphans… :point_down:

sudo pacman -Rns $(pacman -Qdtq)

Once back in your GUI environment, run manjaro-pacnew-checker from your application launcher, and compare the .pacnew files with the original configuration files.

Again, do not blindly copy the .pacnew files over the existing files, but examine them and amend your existing configuration files accordingly.

3 Likes

Thank you very much for your help, I hope the system update will be fine.

2 Likes

You’re welcome, but I hope you now realize why you should keep your system up-to-date.

Manjaro is not a set-and-forget distribution.

We will all hope that for you, but undoubtedly there will be niggles. We’ll just have to take them one at the time.

Crossing your fingers might help (if the gods are favorable to you :stuck_out_tongue:) :wink:

:crossed_fingers:

2 Likes

Big kudo to @Usr2023 for having the guts and willing to learn :100: :+1: :fireworks:

5 Likes

Why can’t run command "manjaro-pacnew-checker?
I installed but run not found command

I’m pretty sure this runs automatically when you run updates…

You can run pacdiff -o to check now. Remember also, take care dealing with files - I like to open them with meld and compare them, and take my time deciding what to do.

If you just want to test some functionality, you can create your own ‘pacnew’ file… Try it.

cd /usr/share/
cp index.theme index.theme.pacnew
nano index.theme.pacnew

Just add a line like # This is my pacnew.

Save and quit.

2 Likes

I did not understand the .pacnew file well, that is, the previous configuration is merged with the new one when updated, or do I have to do it manually?

That is the name of the package.
It installs a systemd service which will be run after each update.

The actual command it executes is:
pacnew-checker0
or
pacnew-checker

pacdiff
is intended to be used interactively, like @Ben said

… but you could try and see what happens when you run pacnew-checker0 ?

Or run the service:
systemctl start pacnew-checker.service

2 Likes

yes :footprints:

➤ pacnew-checker0                                                                                                                                                    
Execution time: 0h:00m:02s sec

nothing output

Should I do this or is it not necessary?

I have no information about the file .pacnew, how to do it?

Then you must have already tended to all of them, I’d guess.

What does pacdiff -o say?
It will come back empty when there are none (anymore)

Did you already tend to all of the .pacnew files?

I do not have that package (manjaro-pacnew-checker) installed - I read the output while upgrading and there these files will be mentioned.
I take a mental note and tend to them on my own.

➤ pacdiff -o                                                                                                                        
/usr/share/icons/default/index.theme.pacnew
/etc/hosts.pacnew
/etc/passwd.pacnew
/etc/profile.pacnew
/etc/shells.pacnew
/etc/fuse.conf.pacnew
/etc/locale.gen.pacnew
/etc/default/grub.pacnew
/etc/pamac.conf.pacnew
/etc/lightdm/lightdm-gtk-greeter.conf.pacnew
/etc/mkinitcpio.conf.pacnew
/etc/pacman.conf.pacnew
/etc/pacman-mirrors.conf.pacnew
/etc/privoxy/config.pacnew
/etc/sudoers.pacnew
/etc/systemd/coredump.conf.pacnew
/etc/systemd/journald.conf.pacnew
/etc/systemd/resolved.conf.pacnew
/etc/systemd/system.conf.pacnew

is everything is ok?