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.
I just installed -current with help AlienBob Liveslak. I have local mirror. I wanted to fully update system, update + install all new packages. Just full Slackware -current installation. I did this
Problem is many packages are missing. For example fluxbox was not installed. If I explicitly require
Code:
# slackpkg install fluxbox
then slackpkg finds that package. So at this point I need to find all missing packages and install by other means. slackpkg tells that nothing new is to install or to upgrade. Some new packages were installed: KDE, motif. What may cause such behavior? Install only some part of new packages and omit others. I thought perhaps some files are not accessible. But fluxbox is not present on system, so I think it should be installed with install-new command. However apparently not - yet it can be installed directly. And the same for many more packages.
Total mess now. System don't even boot. During upgrade also kernel was upgraded 5.10.7 -> 5.10.9. Now it can't find root partition. It shows
Code:
# mount
none /
....
just need to reinstall everything. Brutal force solution. To dig this down - I am not sure it is worthy. Perhaps my fault. After kernel upgrade I didn't rerun mkinitrd - but grub seems always loads initrd despite kernel image. I am not sure it is correct for huge kernel. If something with packages updates/installing will happen again - then sure I will have to look more carefully.
I do not want to say anything bad about slackpkg but, somewhere I made the call that rsync and manual installation is safer at least on slackware current.
Now if you did not yet go for a new installation and have a Slackware bootable disk, just do boot with live disc and use chroot, and if you think the problem is with kernel just correct lilo.conf and remove generic kernel and run lilo -v from inside of chroot, exit and reboot. If the problem is more severe, try to bind lib64 & bin and see if that solves the issue.
If chroot works, maybe packages are wrong, so exit from chroot and then use the MANIFEST.bz2 from Slackware current and write a simple script that lists files in MANIFEST & compares them to the one on your system. One simple example could be to take ls -alt with the correct time zone according to MANIFEST (TZ=GMT+# ls -alt ... ). If you compare strings make sure you are comparing apple to apple, keep privilege, size of the file and etc, remove space, and etc. Obviously, you do not need to compare some of these attributes for the files that are for instance in, /etc, as the user may have modified config files. You also do not need to check folders!
This way you may be able to find out which packages need to be replaced. Then get into chroot and see if without binding libraries and bin you can update packages. In extreme cases, where that is also not possible you can still extract the package & replaces the file with rsync, or cp -p, on a just mounted the disk while using a live disc, check right and groups and that would be it.
But generally, you may want to always keep a simple backup of your system before upgrading. You can use a simple tar function to backup, which later you can extract and put things back if an upgrade goes south.
Thanks inman. I'll try to do something. It is clean install - no data lost. I am on dual boot with Devuan - I use grub at moment. I may try to use installed grub or try to boot with AlienBob Liveslak. I was thinking that perhaps problem was caused by very long access path to repository. I put file:// as mirror for slackpkg. I was surprised slackpkg seems to create links in such case. So it is additional layer where something bad may happens. Repository is on different partition.
AFAIK there's only one (maybe 2) solid reasons to use an initrd. The main one is encryption. Most systems only need the file system module hard coded and then no initrd is needed. If you don't encrypt a case can be made to simplify to not using any initrd. Especially if you multiboot this is generally worth losing encryption at that level. You can still encrypt other areas accessible once system boots and your base system will be simpler and suffer fewer dependencies and work steps.
One needs initrd for example if / is set in some unusual place. To load device drivers. In common scenario I see no advantage running generic kernel. And if someone is not careful - just happens - upgrade can brake system. Usually it is about to forget to run mkinitrd - to recreate initrd. So old is used. With huge just rerun lilo. But it was discussed many times without definite conclusions. I mean generic v. huge.
If that would have worked(i assume @igadoter didn't try that), that would have meant that the
local mirror wasn't correctly set in /etc/slackpkg/mirrors or the the documentroot of the local webserver is wrong.
I think slackpkg "upgrade-all/install-new" expects to find packages in the combinations of MIRROR/PACKAGE_LOCATION_PATH_FROM_PACKAGES.TXT/package.txz
@igadoter, what do you see in if you put your local mirror in a browser? Do you see the directory "slackware64"?
I posted mirror is seen as I can install from that repository package on demand. I required fluxbox and slackpkg found fluxbox and it was ready to install. Just some new packages say KDE, were installed - others not. But still they can be installed one by one.
Seems that some of you don't know what "slackpkg install-new" is supposed to do. It installs those packages which the ChangeLog.txt tells have been "Added." It is not used to install the packages that you are missing for some reason.
If you want to install all the uninstalled packages, you should use "slackpkg install slackware", or "slackpkg install slackware64", if you have a 32-bit or a 64-bit system, respectively. Just like 0XBF wrote.
And "slackpkg upgrade-all" only upgrades those packages that you already have installed.
"slackpkg update && slackpkg install-new && slackpkg upgrade-all && slackpkg clean-system" keeps your system current only if you already have a complete installation.
It depends on the directory where you are. For example, if the current directory contains anything named "slackware64", it probably works. But, e.g. if you only have files "igadoter" and "README.TXT" in that directory, the shell expands the command "slackpkg install *" to "slackpkg install igadoter README.TXT" which does not help.
install-new
This action installs any new packages that are added to the offi-
cial Slackware package set. Run this if you are upgrading your
system to another Slackware version or if you are using -current.
If you want to install all uninstalled Slackware packages onto
your system, use the following command instead of the install-new
action:
# slackpkg install slackware.
Last edited by Petri Kaukasoina; 01-31-2021 at 06:42 AM.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.