[SOLVED] how to move from stable 14.2 to newer slackware system such as -current
SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
One other problem I should mention as I cannot explain it :
While building my new kernel, although make and make modules_install worked just fine, the final command
Quote:
make headers_install
failed, and it turns out that this kernel (5.4.53 - which is LTS for 5.4) headers_install uses rsync,
and it was rsync which was failing because of three missing dependencies :
Quote:
rsync: error while loading shared libraries: liblz4.so.1: cannot open shared object file: No such file or directory
rsync: error while loading shared libraries: libzstd.so.1: cannot open shared object file: No such file or directory
rsync: error while loading shared libraries: libxxhash.so.0: cannot open shared object file: No such file or directory
This was at the point where I had completed all the slackpkg commands but had not yet rebooted.
Those three libraries were not present anywhere on the system at that point.
rsync now looks like this (*after* I copied the missing libs from elsewhere)
Quote:
rsync --version
rsync version 3.2.2 protocol version 31
Since I see that most slack experts use rsync a lot, I guess this has not happened to anyone else so may be some quirk in my setup.
Others remembered to 'slackpkg install-new'. From ChangeLog.txt:
Code:
Tue Jun 23 21:49:49 UTC 2020
l/lz4-1.9.2-x86_64-1.txz: Added.
This is a new dependency for dovecot, libarchive, mariadb, rsync,
squashfs-tools, subversion, and zstd. Thanks to Heinz Wiesinger.
l/xxHash-0.7.3-x86_64-1.txz: Added.
This is a new dependency for rsync.
l/zstd-1.4.5-x86_64-2.txz: Rebuilt.
Recompiled to pick up lz4 support. Thanks to Heinz Wiesinger.
n/rsync-3.2.1-x86_64-1.txz: Upgraded.
Please note that this update requires the new packages xxHash and lz4.
Why did you build the kernel? Current has kernel 5.4.53.
and so did I - as instructed by chrisretusn - see my previous posting.
But this was the command which emitted those error messages.
Is there any way to check which packages a particular execution of slackpkg install-new actually installed?
Maybe when I ran it it failed to install those three. In which case - maybe it failed to install others as well.
Is it safe for me to re-run slackpkg install-new now?
Why did you build the kernel? Current has kernel 5.4.53.
On the day when I ran those slackpkg commands, current had 5.4.52, not 5.4.53 - I guess that was updated today or yesterday.
But in any case I have various reasons for needing to rebuild any kernel that I put into production on my systems - one being that I prefer not to have to use an initrd, and another being that I have a couple of kernel patches that I need to apply that are specific to my hardware and environment.
Last edited by John Lumby; 07-25-2020 at 04:26 PM.
But in any case I have various reasons for needing to rebuild any kernel that I put into production on my systems - one being that I prefer not to have to use an initrd, and another being that I have a couple of kernel patches that I need to apply that are specific to my hardware and environment.
That's OK. I build my kernels (5.7.*), too, and I include ext4 built-in to avoid initrd. But I don't "make headers_install" but instead rely on kernel-headers-4.19.71-x86-1, against which the current glibc was built. Not that it matters.
Turns out I had an "interesting" time even logging in to my system after rebooting - login failed with errors relating to libpam.so and related libs and security files all missing. Strange that it even thought it should be using pam login modules if it had not installed any. Anyway, thank goodness for my newly-built kernel turning out to work fine and root-over-nfs made it fairly easy to obtain all the missing bits and pieces of pam and copy them in, after which I was able to log in.
I guess that my earlier
Quote:
slackpkg install-new
failed to install anything much at all - those error messages about gpg probably really were trying to tell me something.
I have re-run
Quote:
slackpkg update
slackpkg install-new
and the install-new is still running so I am hoping this time it will "take".
It really would be useful if slackpkg kept a log of what it had done - I would have been able to spot the problem sooner and fix it easier. Oh well. Is there any slackpkg subcommand or other tool which can reconcile the current state of a system with what it should be, e.g. list missing dependencies and packages which are back-level relative to what the previous slackpkg command should have installed? It would be nice to find out problems other than by blundering into login failures etc.
I am trying to do this Slackware64-14.2 to Slackware64-current using the mirror you indicated. My first observation is this server is slow, it took five minutes to just get the GPG key. I am currently about an hour in to 'slackpkg install-new' it's working on cracklib right now.
Another observation is ChangeLog.txt lags a bit. The mirror I use, if at "Sat Jul 25 18:11:22 UTC 2020", this mirror is at "Fri Jul 24 18:44:56 UTC 2020", nothing earth shattering though.
It sound like you were missing files in this update. Hard to reason out why but your problems certainly point to that.
That and you didn't overwrite some key configuration files or merge the correct changes. Probably why you are having issues with pam.
Last edited by chrisretusn; 07-26-2020 at 07:27 AM.
Yes it is, and maybe there are better ones, but I wasn't in a hurry.
Quote:
Originally Posted by chrisretusn
It sound like you were missing files in this update. Hard to reason out why but your problems certainly point to that.
That and you didn't overwrite some key configuration files or merge the correct changes. Probably why you are having issues with pam.
After re-running the two
Quote:
slackpkg update
slackpkg install-new
and another reboot, all now seems ok and system is up and running.
I don't know why the first install_new that I ran did not install the new package files, but :
. I did run that one in an emacs shell session (it did not barf for that command)
. I did get those strange error message about gpg at the end
Although it seems unlikely that this caused non-install of packages, I don't see any other explanation.
Total time for this upgrade (including my down time) was 5 days, which is more than I had anticipated, but I think when I do this again (on my other slackware64-14.2) it will be a lot less. Main thing, it now seems fine. All's well that ends well.
Yes it is, and maybe there are better ones, but I wasn't in a hurry.
The "install-new" finished yesterday, the "upgrade-all" is still going on gzip right now. If got the "upgrade-all" on "time" so we shall see how long it took.
With the "install-new" I had one glitch, a minor one, the MD5SUM for gcc-gdc-9.3.0-x86_64-2.txz.asc was bad. gcc-gdc was still installed. Ran 'slackpkg reinstall gcc-gdc' as a precaution, no errors reported when I can back from eating lunch.
Quote:
and another reboot, all now seems ok and system is up and running.
I don't know why the first install_new that I ran did not install the new package files, but :
. I did run that one in an emacs shell session (it did not barf for that command)
. I did get those strange error message about gpg at the end
Although it seems unlikely that this caused non-install of packages, I don't see any other explanation.
Total time for this upgrade (including my down time) was 5 days, which is more than I had anticipated, but I think when I do this again (on my other slackware64-14.2) it will be a lot less. Main thing, it now seems fine. All's well that ends well.
Glad it turned out well in the end.
If you have the room, I highly recommend adding a directory for a local mirror on one of your systems. You can set it up with a cron job to update daily or what ever period you like. Once you have the local mirror setup you can do updates across your LAN. Very handy especially when using Slackware64-current when it comes to keeping up with the updates on multiple systems.
My main computer (this one) serves as my file server and backup server. I mirror the Slackware tree off my /home/ directory.
The script listed is a script I got from Alien Bob. I use it to mirror those Slackware trees. The only one that is a cron job is the SLackware64-current tree. The rest are done manually as needed. Those directories are created by mirror-slackware-current.sh based on command line options given or what is defined in mirror-slackware-current.conf
You can get the script here. http://www.slackware.com/~alien/ Be sure to read that comments in the script and use the script to write a .conf file containing script defaults making changes as needed to fit your situation.
LOL. I am retired. I have loads of time, but wow, that server is sloooow. It might be faster from your location, but here is just arggg. I will finish my test run though, passing hplip as I am typing.
Chris, do you think you could post content of your mirror-slackware-current.conf here ( or send to johnlumby at hotmail dot com )
I am about to try using the local mirror method on my "other" old 14.2-64 and getting rather confused as to some of those rsync options.
Also, with the alien-bob script is it mandatory to build the iso CD and/or DVD? I don't see any option one way or another but I don't know why I would want those - I *think* i want only the tree don't I?
Chris, do you think you could post content of your mirror-slackware-current.conf here ( or send to johnlumby at hotmail dot com )
I am about to try using the local mirror method on my "other" old 14.2-64 and getting rather confused as to some of those rsync options.
Also, with the alien-bob script is it mandatory to build the iso CD and/or DVD? I don't see any option one way or another but I don't know why I would want those - I *think* i want only the tree don't I?
I'm not Chris but I also keep a local mirror of the slackware64-current tree (and a couple of alienBob's repos). You can run "sh mirror-slackware-current.sh -w" to create a default conf file. Then edit the conf file's SLACKROOTDIR and ARCH to suit your setup. To skip creating iso's, set ISO="NONE". The only other edit I make is to set the script to be more verbose with the VERBOSE variable.
Chris, do you think you could post content of your mirror-slackware-current.conf here
I am about to try using the local mirror method on my "other" old 14.2-64 and getting rather confused as to some of those rsync options.
Here is my mirror-slackware-current.conf in it's entirety. This is what I use for defaults for Slackware64-current. ### My comments ### Lines I changed from the defaults as created from 'mirror-slackware-current.sh -w'
Code:
# Binaries to use:
RSYNC="/usr/bin/rsync"
MKISOFS="/usr/bin/mkisofs"
MD5SUM="/usr/bin/md5sum"
ISOHYBRID="/usr/bin/isohybrid"
# Your name/email:
BUILDER="redacted"
# Where do you want to create the local mirror? The Slackware directory tree
# will be stored as ${SLACKROOTDIR}/${SLACKRELEASE}
# This value can be overruled via the '-l' commandline parameter;
### This is my root location for my local mirror ###SLACKROOTDIR="/home/slackware"
# What architecture will we be mirroring? The default is 'x86' meaning 32bit.
# Alternatively you can specify 'x86_64' meaning 64bit or 'arm' meaning ARM.
# The value of ARCH determines the name of the slackware directories.
# This value can be overruled via the '-a' commandline parameter;
ARCH="x86_64"
# The slackware release we're mirroring (defaults to 'current').
# You can use the script's '-r' switch to alter this to another release,
# for instance mirror Slackware 13.37 by passing '-r 13.37' to the script.
RELEASE="current"
# The RSYNC mirror:
# Supply a full rsync URI in the RSYNCURLROOT variable, while leaving out
# the final "slackware-current" directory. Do not remove the trailing slash!
# RSYNCURL will become ${RSYNCURLROOT}${SLACKRELEASE} further down.
# An alternative rsync mirror URI can also be passed to the script with
# the '-m' option - that URI must *not* have a trailing slash.
RSYNCURLROOT="slackware.mirrors.tds.net::slackware/"
RSYNCURL=""
# From the script: ## default above
# Good rsync mirrors are:
#
## rsync.osuosl.org::slackware/slackware-current
# slackware.mirrors.tds.net::slackware/slackware-current
# rsync.slackware.pl::slackware/slackware-current
# rsync.slackware.at::slackware/slackware-current
# mirrors.vbi.vt.edu::slackware/slackware-current
# rsync.slackware.no::slackware/slackware-current
# If you need to feed rsync's "external" program additional options (such as
# an identity file for passwordless login over ssh if your remote server is
# no real rsync server), Use EXTOPTS for passing those additional options.
# Example: EXTOPTS="-oIdentityFile=/home/alien/.ssh/id_rsa -l alien"
# This is an option you can also set using the '-s' parameter on the command
# line, like so:
# -s '-oIdentityFile=/home/alien/.ssh/id_rsa -l alien'
# If this is defined, then "ssh" will be used as the "external" program.
EXTOPTS=""
# The defaults: somewhat moderate output in all cases;
# You can alter this behaviour by passing either the
# '-q' (totally silent unless there is an update) or the '-v' (be verbose)
# switch to the script.
DEBUG=1
### I like a bit more information, the default is '-q' ###VERBOSE="-v --progress"
# Set ISO="DVD" if you want a single DVD instead of four CD ISO's.
# Set ISO="CDROM" if you want four CD ISO's instead of a single DVD.
# Set ISO="ALL" if you want four CD ISO's as well as a single DVD ISO.
# Set ISO="NONE" if you just want to sync the local mirror but don't need ISOs.
# Set ISO="MINI" if you want only the mini ISO (network installer).
# Note: setting ISO="MINI" will result in a partial sync (no packages)!
# You can set the ISO variable using the '-o <iso_type>' switch too.
### Here you can tell the script not to make the ISO 'ISO="NONE"' ###ISO="DVD"
# If you want to skip the rsync stage entirely, and just want to build
# ISO image(s) from your local tree, then set ISOONLY="yes"
# (or use '-i' parameter with the script)
ISOONLY="no"
# Normally, when no update is found in the ChangeLog.txt, the script exits
# without creating ISO images. If you want ISO images nonetheless, set
# the variable FORCE to "yes" (or pass the '-f' switch to the script).
FORCE="no"
# You might just want to check if the ChangeLog.txt changed...
# In that case, set ONLYDIFF to '1'. The script will exit after showing the
# diff between your local and the remote server's version.
# Corresponds to the '-n' option.
ONLYDIFF=0
# The default is not to remove the previous ISO until the new ISO has been
# created. Set PREREMOVE to '1' if you want the old ISO to be removed before
# running 'mkisofs' - this is useful in case you are short on disk space.
# Corresponds to the '-p' option.
PREREMOVE=0
# If you want a 'hybrid' ISO image which can be copied directly to a USB stick
# to create a bootable USB media, set HYBRID to '1'.
# Corresponds to the '-u' option.
HYBRID=0
# The value of EXCLUDES is what the script will exclude from the mirroring
# process; there is no parameter for the script to change this value, but you
# can use '-X excludefile' to define more excluded directories/files if you
# wish. Or directly edit the line below of course:
EXCLUDES="--exclude pasture"
# By default we do not use an 'excludes' file to rsync, but you can override
# that by using the '-X' parameter or set EXCLUDEFILE to a filename:
# By default the script does not mirror /pasture , use '-X none' (the 'none'
# is taken as a special value by the script) to also mirror /pasture .
EXCLUDEFILE=""
# If you want to exclude more from the DVD ISO than just the ./testing
# directory, you can add the directories to DVD_EXCLUDES.
# The pathnames must be local to the top level and must start with ./
#DVD_EXCLUDES=${DVD_EXCLUDES:-"-x ./testing"}
### This is the default ####DVD_EXCLUDES="-x ./testing -x ./source -x ./extra/source"### This is my preference for what goes in the DVD ###DVD_EXCLUDES="-x ./testing -x ./source -x ./extra/source -x ./slackware*/kdei -x ./pasture"
# By default, this script will use all available bandwidth (BWLIMIT=0).
# If you want to limit bandwith usage to NN KBytes/sec, set BWLIMIT=NN
# or use the '-b NN' parameter.
BWLIMIT=0
# The script can check if a newer version of itself is available for download.
# If you want this, set CHECKVER="yes" or use the '-c' parameter to the script.
CHECKVER="no"
# By default, this script uses a 'boot-load-size' of 4 (KB) as argument
# to the 'mkisofs' command.
# Slackware's bootable DVD and CDROM use a value of 32, and although that
# value follows the standard better, it will create an ISO that will not boot
# on many older 'broken' PC BIOSes.
# The script will use the value of "32" if you pass the parameter '-e'
# or change the value below:
BOOTLOADSIZE=32
With my configuration as shown above, the local mirror will go to this directory:
/home/slackware/slackware64-current/
The ISO files will be created in this directory:
/home/slackware/slackware64-current-iso/
This is a listing of the mirros I keep. The only one updated using a cron job is the slackware64-current one. I put the command used to create in parenthesis. I keep this script and configuration file in /home/slackware/
/home/slackware/slackware-14.2/ ('mirror-slackware-current.sh -a x86 -r 14.2')
/home/slackware/slackware-14.2-iso/
/home/slackware/slackware-current/ ('mirror-slackware-current.sh -a x86')
/home/slackware/slackware-current-iso/
/home/slackware/slackware64-14.2/ ('mirror-slackware-current.sh -r 14.2')
/home/slackware/slackware64-14.2-iso/
/home/slackware/slackware64-current/ ('mirror-slackware-current.sh')
/home/slackware/slackware64-current-iso/
Also, with the alien-bob script is it mandatory to build the iso CD and/or DVD? I don't see any option one way or another but I don't know why I would want those - I *think* i want only the tree don't I?
Yes, I pointed out one way above in the configuration file. The the other way:
mirror-slackware-current.sh -o NONE
Last edited by chrisretusn; 09-04-2020 at 09:59 AM.
Reason: Add crontab entry, plus can't spell. <grin>
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.