There has been a learning process for me in this and I appreciate the opportunity.
This question made me think - there is configuration which are not part of any package and resides only in the desktop overlay. When doing this kind of setup these configs must be copied manually - also the display manager configuration must be done manally.
To be sure everything is there one would consult the relevant iso profile and copy the specifics from the live ISO - in this case the mate iso profile
I have been playing around with the files from the Mate edition and I found they contains duplicates after the merge.
Another thing from the process - grub and os-prober is not needed - systemd-boot - so I have reworked the process into a single line.
I have amended above script
- be sure to use a Mate ISO to boot the system
- amend the variables in the beginning
- put the script on another USB
- mount the USB and use bash to run the commands contained in the file
bash <filename.txt>
Package command break-down
See man comm
, man awk
, man sort
, man sed
for more information.
pacman --print -S $(comm -12 <(awk '{print $1}' /rootfs-pkgs.txt | sort) <(awk '{print $1}' /desktopfs-pkgs.txt | sort) | sed '/^grub/d' | sed '/^os-prober/d' | sed '/^kernel-alive/d' | sed '/^kernel-modules-hook/d')
This part generates a list of packages with their version information stripped of and the result is sorted. This isrepeated for desktopfs-pkgs.txt.
awk '{print $1}' /rootfs-pkgs.txt | sort
This part creates a sorted list from the two files containing only unique files from both sources
comm -12 <(awk '{print $1}' /rootfs-pkgs.txt | sort) <(awk '{print $1}' /desktopfs-pkgs.txt | sort)
The sed parts removes some unnecessary packages (grub, os-prober, kernel-alive and kernel-modules-hook)
sed '/^grub/d' | sed '/^os-prober/d' | sed '/^kernel-alive/d' | sed '/^kernel-modules-hook/d'
Finally the result is fed to pacman - using the --print
argument to mimic what would have been done
pacman --print -S