-
Notifications
You must be signed in to change notification settings - Fork 19
Updating the Code in a Running Installation
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.
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).
Now you need to copy the updated file to the installation system.
# 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
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.)
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.
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