Remastering Nemesis (howto)

Arch based Porteus community project

Moderator: M. Eerie

User avatar
M. Eerie
Moderator
Moderator
Posts: 616
Joined: 31 Aug 2017, 21:18
Distribution: Nemesis Xfce/MATE x64

Remastering Nemesis (howto)

Post#1 by M. Eerie » 20 Nov 2021, 09:59

This is an attempt to demystify Nemesis updates.

As you can see in this thread (mostly page 16 onwards), you can update Nemesis base modules in a semi-automatic way by using the update-base script.

But let me emphasize the word "semi" and what this implies. By nature, Archlinux (and thus Artix) are rolling releases, meaning changes occur on the space-time line and you have to be bold and face them, because shit bits happens now and then and things can break at any point.

I.e. past days, a xserver lib was causing a failure with font rendering and dual monitors handling. This was solved two days later. So, depending on the moment you decide to update your modules you get a system with greater or lesser stability.

Fortunately, the Porteus modular concept serves well our noble cause here and you can revert back your disasters with ease.

*TIP: if you ever get a hangup, instead of pressing power button for +4 seconds to power off, try first the "busier" trick: Holding down ALT SYSREQ keys, press the "busier" sequence keys one by one in reverse --> (ALT+SYSREQ r e i s u b). This one will prevent from "dirty bits" in the FAT table of your mounted partitions.

On the other hand, the update-base script firstly updates the live system, somehow providing a simulation of what would be deployed into your updated modules. While updating live occurs, watch carefully for pacman warning messages about new or suggested dependencies and annotate them.

Then, (as is not yet implemented) you can modify the update script and add the relevant packages in the intended section, separating them by space.

For example, suppose that when updating the live-system we are asked if we want to replace the package named "blah" with the new package named "halb", this clearly indicates that the blah package is obsolete and must be replaced by the halb package.

Next step would be to locate the obsolete package that we have loaded in memory. Open your terminal root:
# find /mnt/live/memory/images -iname *blah*

Sample output:
/mnt/live/memory/images/001-core-20211117.xzm/usr/share/zoneinfo-leaps/Africa/Casablahnca
Note I've added the extra 'h' on purpose :)

And now you know where the obsolete package belongs. So following our example, you just change:
case $bMOD in
*mate-extras) pkgAdd=""; pkgRem="";;
*lxde|*lxqt|*xfce|*mate) pkgAdd=""; pkgRem="";;
*xtra) pkgAdd=""; pkgRem="";;
*gui) pkgAdd=""; pkgRem="";;
*devel) pkgAdd=""; pkgRem="";;
*core) pkgAdd="halb helb hilb list-of-new packages separated by space"; pkgRem="blah";; ### --ignore '*'
end*) the_end;;
esac
in our "case" statement.

Other things to note:
  • Since the new "mirrorlist-toggle" acts as a switch targeting (or not) to updated repositories, be aware that relaunching the script will in fact instruct the mirrors database to use the frozen ones. You will need to re-run again to allow system updates.
  • If you want to try a speedy (and pretty) pacman, try this:

    Code: Select all

    # sed -i 's_#Color_Color\nILoveCandy_; s_#ParallelDownloads\ = 5_ParallelDownloads\ =\ 10_' /etc/pacman.conf
  • For the kernel module, you can use any of APorteus since both Nemesis and APorteus share the Archlinux filesystem structure. It is advised not to rename the module. (i.e. let it be 000-kernel.xzm)
And this is all by now. I guess this how-to will be updated as needed.

Greetings_
> Does not compute_ 🖖

https://forum.porteus.org/viewtopic.php?p=94310#p94310
https://forum.porteus.org/viewtopic.php?p=84002#p84002
https://forum.porteus.org/viewtopic.php?p=77174#p77174
https://forum.porteus.org/viewtopic.php?f=39&t=8584

User avatar
M. Eerie
Moderator
Moderator
Posts: 616
Joined: 31 Aug 2017, 21:18
Distribution: Nemesis Xfce/MATE x64

Remastering Nemesis (howto)

Post#2 by M. Eerie » 11 May 2023, 21:17

Preamble:

If like me you have been using my script to update Nemesis base modules, read on. Otherwise read on as well because you might be interested in this to expand your knowledge about pacman handling and its application in Archlinux and derivative distributions, as is the case of Nemesis.

What I am going to tell you here I have not found it in any other page in all this time that I have googled. There is excellent information on the ArchWiki, but of course, in no case are there any solutions to a scenario in which the system is forced to perform partial updates, something that is strongly discouraged and for which no support is offered.

One of the weaknesses of Nemesis, and in particular of my script to update it, is that it relies on just that, on forcing partial updates, and what is even worse, doing it in modules that contain a subset of packages that are somehow isolated from each other.

By doing so, and as packages are updated, the reason for their installation will be set to EXPLICIT unfailingly and therefore we are cheating pacman by making it lose track of which packages are dependent on others.

Specifically, the command to update a base module is:

Code: Select all

pacman -Sddr $X
where $X is the path to our module's folder.

That is, we are forcing to disable dependency checking and so, as the updates happen, practically all packages are declared as explicitly installed.

If you also skip the previous Live System update, you will miss important messages about possible new dependencies or obsolete/replaced packages.

Thus, a solution provide we must.
To be continued...
> Does not compute_ 🖖

https://forum.porteus.org/viewtopic.php?p=94310#p94310
https://forum.porteus.org/viewtopic.php?p=84002#p84002
https://forum.porteus.org/viewtopic.php?p=77174#p77174
https://forum.porteus.org/viewtopic.php?f=39&t=8584

beny
Full of knowledge
Full of knowledge
Posts: 2083
Joined: 02 Jan 2011, 11:33
Location: italy

Remastering Nemesis (howto)

Post#3 by beny » 11 May 2023, 22:14

hi M.Eerie you know arch rosetta?
https://wiki.archlinux.org/title/Pacman/Rosetta

User avatar
M. Eerie
Moderator
Moderator
Posts: 616
Joined: 31 Aug 2017, 21:18
Distribution: Nemesis Xfce/MATE x64

Remastering Nemesis (howto)

Post#4 by M. Eerie » 12 May 2023, 23:07

beny wrote:
11 May 2023, 22:14
arch rosetta
Thanks, now I do... :roll:

I have most of these commands written down in a scattered way. It's great to have them all collected on one page. Another Archwiki gem.
It saves me from writing some part of this thread, but there are still procedures for keeping the system healthy that are not there that I will publish soon.
> Does not compute_ 🖖

https://forum.porteus.org/viewtopic.php?p=94310#p94310
https://forum.porteus.org/viewtopic.php?p=84002#p84002
https://forum.porteus.org/viewtopic.php?p=77174#p77174
https://forum.porteus.org/viewtopic.php?f=39&t=8584

User avatar
ncmprhnsbl
DEV Team
DEV Team
Posts: 3918
Joined: 20 Mar 2012, 03:42
Distribution: v5.0-64bit
Location: australia
Contact:

Remastering Nemesis (howto)

Post#5 by ncmprhnsbl » 03 Jun 2023, 03:32

something i've discovered recently from the pacutils pkg:

Code: Select all

paccheck --depends | grep unsatisfied
lists missing dependencies of installed packages, which seems to be handy for picking up newly added deps.. (with the need to disregard some that aren't as 'hard' as the database suggests)
Forum Rules : https://forum.porteus.org/viewtopic.php?f=35&t=44

User avatar
M. Eerie
Moderator
Moderator
Posts: 616
Joined: 31 Aug 2017, 21:18
Distribution: Nemesis Xfce/MATE x64

Remastering Nemesis (howto)

Post#6 by M. Eerie » 04 Jun 2023, 12:50

ncmprhnsbl wrote:
03 Jun 2023, 03:32
i've discovered recently from the pacutils pkg
This is much better than the

Code: Select all

pactree <package> | grep unresolvable
I had in mind.

Included in the Nemaster script :)
> Does not compute_ 🖖

https://forum.porteus.org/viewtopic.php?p=94310#p94310
https://forum.porteus.org/viewtopic.php?p=84002#p84002
https://forum.porteus.org/viewtopic.php?p=77174#p77174
https://forum.porteus.org/viewtopic.php?f=39&t=8584

Post Reply