My apporach on how to keep Slackware-current upgraded
Earlier this month a fellow LQ newbie asked us How to maintain a sane slackware64-current with Eric Hameleers multilib and ktown? Well, I gave my two cents there.
Now I'm here to expand on how I keep up with Slacware-current evolution in a safe manner, i.e. by avoiding system breakage between upgrades. Keep in mind that even if all this works perfectly for me and I haven't had not a single glitch in this process in the past couple years, it is solely my approach to the task. I have no intention at all that this may become an ultimate approach to it. It's just my way of doing things that could eventually help others with ideas. The scripts are here: https://gist.github.com/denydias/a10...08b8c1bec63ac8 And this is how they work:
Code:
$ sudo minskyup mirror && sudo minskyup slack --force If the changelog entry also contains a new kernel version, then I run: Code:
$ sudo minskyup kernel As for the other minskyup options, they are pretty self explanatory. For instance, to upgrade virtualbox: Code:
$ sudo minskyup virtualbox But there are some other tools that do not provide a way to discover which the latest version is. In that case you have to check first, but it's quite simple too: Code:
$ sudo minskyup docker So, this is how I do it. WFM. Damn, really WFM! :D PS: why minskyup? My box is named after Marvin Minsky. :cool: |
1 Attachment(s)
Thank you for your highly interesting post!
I am taking a far less ambitious approach to keeping my Slackware systems up-to-date, but now that I finally got around to finishing my script for maintaining the Linux kernel under Slackware, I thought I’d share the procedure that I follow. Now, as you said: Quote:
I maintain a local copy of the Slackware repository, which I keep up-to-date with the rsync utility. I blacklisted the kernel packages (as well as ‘SBo’, ‘alien’, and ‘compat32’) in my ‘/etc/slackpkg/blacklist’ file, and to install the Slackware updates, I run the typical command sequence: Code:
# slackpkg update Code:
# upgrade-kernel.sh In case anyone is interested, I attach the script (with an extension of “.txt” instead of “.sh”) to this post. |
I'm glad you liked it. Thank you.
Quote:
|
Dear denydias,
thanks for sharing your workflow. I have one question concerning ktown. Is it really necessary to: Code:
# slackpkg upgrade ktown Code:
# slackpkg upgrade-all Greetings Marcus |
@luvr thanks for providing your script. Is it necessary in order to make it work to use a local mirror or does it also work with a remote? If the latter is the case, could you please share your opinion on why it's better to use a local mirror?
Greetings Marcus |
Quote:
In case anyone ever runs into the same issue: After you rsync your local repository, a new kernel (or, by extension, any new or updated package) won’t get picked up until you run Code:
# slackpkg update Code:
# slackpkg update |
That was exactly the point, thanks. Have you seen my additional question:
Quote:
|
For me it's usually:
Code:
slackpkg update |
@dugan what is the compat32pkg about that you are using? Are you converting the regular packages in multilib with that? Would it also be possible to use aliens multilib repository instead?
|
|
Quote:
The immediate reason is that it looks for an active “file:” line in your ‘/etc/slackpkg/mirrors’ file, and it will quit if it doesn’t find one. The more fundamental reason is that the ‘installpkg’ command (which the script runs to install the new kernel packages) only installs packages that are available locally. Therefore, to support a remote mirror, the script will have to download the packages to a local directory before installing them. While I did consider implementing this (using something like ‘wget’ or ‘curl’), I decided in the end that it wasn’t worth the hassle. After all, the script was really just meant for my own use—“just a hobby, won't be big and professional like gnu”… ;) Quote:
|
@luvr thanks for the reply. I can imagine that a local mirror is also a bit more 'safe' especially for upgrades from stable to -current. I am using it now as you have implemented and till now I am very happy with it. Thanks for the work.
|
@luvr I have noticed one little thing concerning your script: I had the local mirror configured without the trailing slash first, like: file://home/ftp/pub/Linux/Slackware/slackware64-current and your script exited when it tried to detect the local mirror. After modifying the slackpkg mirror configuration so that it looked like this: file://home/ftp/pub/Linux/Slackware/slackware64-current/ everything worked as expected.
|
Quote:
Code:
# Slackpkg only needs to point to the directory that contains Having said that, making the trailing slash optional requires just one simple change to the script (replacing a single ‘+’-sign with an asterisk), as implemented by the following patch: Code:
--- upgrade-kernel.sh_orig 2019-08-10 15:02:21.158041934 +0200 Code:
# patch < /tmp/plus2asterisk.patch |
@luvr thanks for pointing that out and for the patch. I think I will let it like this now as it works perfectly. I have to admit that I did not read the note in the slackpkg mirrors config. I have just tried the script without having the trailing slash set before and then I have realized that in your script there was one, so I have added it an it worked.
|
All times are GMT -5. The time now is 01:34 PM. |