[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.

Welcome to the Slackware Documentation Project

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
howtos:slackware_admin:systemupgrade [2012/09/25 01:59 (UTC)] – moved from howtos namespace mfillpothowtos:slackware_admin:systemupgrade [2021/08/04 17:31 (UTC)] (current) – In Slackware 14.2 and earlier, the aaa_glibc-solibs package was called glibc-solibs! alienbob
Line 13: Line 13:
 Just running ''slackpkg'' and hoping for the best is not going to work. Some considerations have to be cared for. One important thing to remember: Just running ''slackpkg'' and hoping for the best is not going to work. Some considerations have to be cared for. One important thing to remember:
 <note important>Never upgrade your working kernel.</note> <note important>Never upgrade your working kernel.</note>
-Why is that? Simple - you will be upgrading potentially hundreds of packages and should be prepared for the unlikely event that your computer does not work properly anymore after a system upgrade. One thing you don't want to get hit by is a system which does not boot at all. A new Slackware release may install a kernel that refuses to boot your computer (small chance but nevertheless... be prepared). For that reason, you need to keep your "old" working kernel installed, and keep a section for it in your ''/etc/lilo.conf'' file. That way, if the new kernel fails to boot, you can fall-back to the old kernel and start investigating what went wrong. \\ Basically, these are the same precautions you must take when you are [[howtos:kernelbuilding|compiling a new kernel]] yourself.+Why is that? Simple - you will be upgrading potentially hundreds of packages and should be prepared for the unlikely event that your computer does not work properly anymore after a system upgrade. One thing you don't want to get hit by is a system which does not boot at all. A new Slackware release may install a kernel that refuses to boot your computer (small chance but nevertheless... be prepared). For that reason, you need to keep your "old" working kernel installed, and keep a section for it in your ''/etc/lilo.conf'' file. That way, if the new kernel fails to boot, you can fall-back to the old kernel and start investigating what went wrong. \\ Basically, these are the same precautions you must take when you are [[howtos:slackware_admin:kernelbuilding|compiling a new kernel]] yourself. 
 + 
 + 
 +===== Video driver considerations ===== 
 + 
 +If your computer is equipped with a video card powered by an [[http://www.nvidia.com/object/unix.html|Nvidia]] or [[http://www2.ati.com/drivers/linux/installernotes.html|Ati]] graphics processor and you have installed these companies' accelerated graphics drivers (closed-source and binary-only), you should not attempt start an X session after upgrading to the next Slackware release. \\ These drivers depend on kernel version, Mesa version and the X.Org server. You must  re-install the binary driver before starting graphical mode. Also, the mesa and xorg-server packages of Slackware overwrite essential files of these closed-source accelerated graphics drivers anyway. 
 + 
 +If you want to know how to deal with these binary drivers, we have more detailed instructions in the "[[howtos:hardware:proprietary_graphics_drivers|Proprietary Graphics Drivers]]" article on this Wiki. 
 + 
 + 
 +===== Slackpkg considerations ===== 
 + 
 +If you upgrade Slackware (see below for the procedure), you will upgrade [[slackware:slackpkg|slackpkg]] as one of the first steps. The ''upgradepkg'' command will install a file ''/etc/slackpkg/mirrors.new''. This is the file which contains the URLs for mirrors carrying the new Slackware release. You will have to compare this to the original version and merge the contents. 
 + 
 +//Be sure to have exactly **one line** uncommented which points to a mirror for the desired Slackware release version and architecture.//
  
  
Line 41: Line 55:
 </code> </code>
  
-  * When slackpkg has updated its internal database we can let it update the computer to the new Slackware release: <code>+  * When slackpkg has updated its internal database, the first thing to do is to upgrade ''slackpkg'' itself to the latest version (including the URL's for the new Slackware release and any package upgrade rules that apply to the new release). If you fail to perform this step, ''slackpkg'' will upgrade itself in the middle of the //system upgrade//, and abort immediately after that... <code> 
 +# slackpkg upgrade slackpkg 
 +# slackpkg new-config 
 +</code> That final ''new-config'' command is there so that you can view the difference betweeen your old and the new ''slackpkg'' configuration files, in particular ''/etc/slackpkg/mirrors'' and ''/etc/slackpkg/blacklist'' are files you have to check. Overwriting ''/etc/slackpkg/slackpkg.conf'' is usually recommended. 
 + 
 +  * A new Slackware release usually has a newer version of the GNU C libraries. The new packages are compiled against that new ''glibc'' version. In order to prevent an upgrade failure, you need to upgrade the ''aaa_glibc-solibs'' package manually, immediately after upgrading ''slackpkg'': <code> 
 +# slackpkg upgrade aaa_glibc-solibs 
 +</code> Let me give an example of such potential failure: when ''slackpkg install-new'' installs the ''libusb-compat'' package, your ''gpg'' command stops working because it links against libusb.so which will be overwritten with the version from the new ''libusb-compat'' package. The new library needs the new ''glibc'' package, ''gpg'' stops working because of the library linking error, and ''slackpkg'' will stop the system upgrade because it wants to check every package's gpg signature before upgrading it. Upgrading the ''aaa_glibc-solibs'' package prevents the library linking errors by providing the correct "''GLIBC''" symbols. 
 +<note important>In Slackware 14.2 and earlier, the ''aaa_glibc-solibs'' package was called ''glibc-solibs''</note> 
 + 
 +  * Let ''slackpkg'' update the computer to the new Slackware release: <code>
 # slackpkg install-new # slackpkg install-new
 # slackpkg upgrade-all # slackpkg upgrade-all
Line 83: Line 107:
 </code> Note that this command adds a "initrd" line to the kernel section. If you let ''mkinitrd'' create a unique name for your initial ramdisk, then be sure to apply that name in the above section. \\ The "initrd" line is not needed if you are going to run a "huge" kernel. </code> Note that this command adds a "initrd" line to the kernel section. If you let ''mkinitrd'' create a unique name for your initial ramdisk, then be sure to apply that name in the above section. \\ The "initrd" line is not needed if you are going to run a "huge" kernel.
  
-  * Finally, run the "''lilo''" command to make the change permanent and add the new kernel to the lilo boot menu. \\ Remember, you should always be able to boot back into a previous kernel in case the new Slackware kernel gives you a hard time.+  * Finally, run the "''lilo''" command to make the change permanent and add the new kernel to the lilo boot menu. You can just run "''eliloconfig''" if you are using EFI after upgrading Slackware and that will itself install the latest kernel on the EFI partition. \\ Remember, you should always be able to boot back into a previous kernel in case the new Slackware kernel gives you a hard time.
  
  
Line 113: Line 137:
 </code> Alternatively you can run the "''massconvert32.sh''" script which will have been installed as part of the ''compat32-tools'' package. Pass it a 32-bit Slackware package directory (or a 32-bit Slackware mirror URL) as parameter and that will create a set of converted "''compat32''" packages which you can then install. You would only have to do this if you suspect that the content of the "''slackware64-compat32''" directory is not up to date. </code> Alternatively you can run the "''massconvert32.sh''" script which will have been installed as part of the ''compat32-tools'' package. Pass it a 32-bit Slackware package directory (or a 32-bit Slackware mirror URL) as parameter and that will create a set of converted "''compat32''" packages which you can then install. You would only have to do this if you suspect that the content of the "''slackware64-compat32''" directory is not up to date.
  
-===== Video driver considerations ===== 
  
-If your computer is equipped with a video card powered by an [[http://www.nvidia.com/object/unix.html|Nvidia]] or [[http://www2.ati.com/drivers/linux/installernotes.html|Ati]] graphics processor and you have installed these companies' accelerated graphics drivers (closed-source and binary-only), you should not attempt start an X session after upgrading to the next Slackware release. \\ These drivers depend on kernel version, Mesa version and the X.Org server. You must  re-install the binary driver before starting graphical mode. Also, the mesa and xorg-server packages of Slackware overwrite essential files of these closed-source accelerated graphics drivers anyway.+===== Java considerations =====
  
-If you want to know how to deal with these binary driverswe have more detailed instructions in the "[[howtos:proprietary_graphics_drivers|Proprietary Graphics Drivers]]" article on this Wiki.+Slackware used to install a //Java Run-time Engine// prior to the 14.0 release (the JRE binaries were originally Sun's and later distributed by Oracle after it bought Sun). \\ But Oracle changed the re-distribution license so that Slackware (just like all other distributions) was no longer permitted to ship these Java binaries as part of the distribution. When you perform a //system upgrade// to Slackware 14.0an old version of the //JRE// will stay behind on your system. This version "6u25" has several critical vulnerabilities and you should remove it manually from your computer as fast as possible, using the command <code>removepkg jre</code> If you need Java then please have a look in the "''/extra/source/java''" directory of the Slackware 14 release. You will find a script there to create a Slackware package from the most recent Java software from Oracle, which you can then install using the "''installpkg''" command. See also our Wiki article "[[howtos:software:java|Java in Slackware]]"
  
  
 howtos:slackware_admin:systemupgrade ()