Skip to content

Updating the Code in a Running Installation

Ladislav Slezák edited this page Nov 27, 2017 · 6 revisions

Sometimes you need to update Yast code in installation (for debugging, testing a new patch,...).

This documentation describes how to run the latest code from Git in the Yast installer.

Start Installation

The first step is to start the installation with startshell=1 boot option. This will open a shell session before starting the Yast installer.

Also add netsetup=dhcp to automatically configure the network via DHCP (if you need static IP, or if you omit the option you can configure manually).

(Do not forget to add insecure=1 if you use a non-official SUSE installation image, like from Devel:YaST:Head).

Get the Updated Files

Now you need to copy the updated file to the installation system.

Update the Files Directly from GitHub

# replace "master" with requested branch name
cd /tmp
wget https://github.com/yast/yast-registration/archive/master.tar.gz --output-document=yast-registration.tar.gz
tar xfzv yast-registration.tar.gz

Now replace the requested files:

mount -o bind yast-registration-master/src/clients/inst_scc.rb /usr/share/YaST2/clients/inst_scc.rb

If you need you can edit the replaced file:

vim /usr/share/YaST2/clients/inst_scc.rb

Updating rubygem-suse-connect

The Yast registration module uses suse-connect as the backend so you might very likely need also to update this package.

The steps are similar:

wget https://github.com/SUSE/connect/archive/master.tar.gz --output-document=rubygem-suse-connect.tar.gz
tar xfzv rubygem-suse-connect.tar.gz
mount -o bind connect-master/lib /usr/lib64/ruby/gems/<ruby_version>/gems/suse-connect-<connect-version>/lib

(Keeping the old version directory is not a big problem, just for testing a fix in inst-sys it is Ok.)

Download from Local Git Checkout

You can use scp to copy the files from your local Git checkout. Copy them to /tmp and use mount -o bind to override the original files as mentioned above.

Get Updated Packages

If you have updated RPM packages than it is really simple to integrate them into the installer, simply use dud=<url_rpm_package> boot option. See 'dud' Linuxrc documentation