LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (https://www.linuxquestions.org/questions/slackware-14/)
-   -   Keep multiple instances of slackware64-current updated identicaly (https://www.linuxquestions.org/questions/slackware-14/keep-multiple-instances-of-slackware64-current-updated-identicaly-4175678527/)

ennepath 07-11-2020 04:54 AM

Keep multiple instances of slackware64-current updated identicaly
 
The thing is I have a home workstation that is fine for updates testing. I can always revert something that is broken. Mostly because I have time for this. I usually install updates once a week in the evening. So I have at very least a couple of hours to test if everything is OK. Then I need to update my workstation at work and here the problem appears. How to make update of work pc identical to home pc to be certain everything is OK on both my machines? I wonder if keeping slackpkg changelog identical between two workstations is enough for this? Of course there could be a situation when some package being upgraded in the time gap between home pc update and work pc update. But it's ok, I can manage this.

What's your advices on this matter?

EdGr 07-11-2020 06:00 AM

Download the entire tree and make an installation disk. Do a full install on each machine.

The process can be made easier by writing a script to apply customizations.
Ed

ennepath 07-11-2020 06:42 AM

Isn't it an overkill for this task?

EdGr 07-11-2020 07:01 AM

I do this every 2-4 months. The process is highly automated and does not require Internet access.
Ed

igadoter 07-11-2020 07:48 AM

You need your own local repositiory on one of machines - updates are only made through this local repository. You can establish your own local file server - ftp or http://ftp (ftp is much easier) point slackpkg to this sever. Every week you will update repository, and then all your machines - say you can put this into cron

allend 07-11-2020 09:00 AM

Like you, I run a development system for testing that is updated using slackpkg. On this system I use a tweaked slackpkg.conf to maintain a local repository. I find it useful to be able to track by date and compare with the ChangeLog, although rworkman does not like this approach.
When I want to update my daily driver, I copy the directory containing desired updates in /var/cache on the development system into the local /var/cache directory.
If I am happy to apply all available updates, then in a bash shell I use a command like (changed for the correct date)
Code:

(cd /var/cache/packages20200706; shopt -s globstar; for f in **/*.txz; do upgradepkg --install-new $f; done)
To keep the local repository to a manageable size, I use this script.

ennepath 07-11-2020 10:27 AM

@igadoter, @allend, thanks. I guess having a full local mirror is a nice thing anyway. Gonna try this way.

gus3 07-11-2020 09:38 PM

I have 4 x86 nodes, two 32-bit and two 64-bit. The only thing outside -current that they're running, is GCC 10.x from -testing.

My smallest 32-bit is an Asus EeePC 901 netbook, with an external HD, because 4G internal just isn't enough.

So here's my "universal" setup:

-- a central repository of 32-bit and 64-bit Slackware-current packages, on an NFS server (a Raspberry Pi 2)
-- all x86 nodes have it mounted on ~/slackdir
-- and under ~/slackdir is slackware-current and slackware64-current

But package install/upgrade requires root privileges, best acquired via "su -", so there's also a symlink in each /root:

-- /root/slackware-current -> ~/slackware-current on 32-bit, or
-- /root/slackware-current -> ~/slackware64-current on 64-bit

This is the setup that allows the following sequence on my desktop:

Code:

$ multixterm -xc "ssh %n" ::1 system2 system3 system4
This gets me four SSH sessions on my desktop and 3 remote systems. Then:

Code:

$ su -
# cd slackware-current

After this, it's a matter of updating packages. I use the sequence a/, l/, and then the rest in order. And I make sure to install the relevant a/kernel*t?z packages, not update them. (Once a new kernel is proven to Work For Me, I'll delete the old ones, eventually.)

I also have /etc/mkinitrd.conf set up for each system. That way, once all the packages are updated, I can do this:

Code:

# cd /boot
# mkinitrd -F

Then each machine has its appropriate init ramdisk. I can run "lilo" as needed, and all is good for the next go-round.


All times are GMT -5. The time now is 04:06 AM.