πŸ“’ Actions Speak Louder Than Words!

Upgrade Suse Linux Enterprise Server 11 SP1 to SP4

Posted: Sep 27, 2020 | Reading time: 7 min
⚠️ Warning: This post is over a year old, the information may be out of date.
πŸ“’ I’ve moved to a new website. Please visit me at https://journal.robbi.my !
post

As I mentioned previously SLES11 is absolute / not supported anymore. Even most official tutorial are wipe out form suse website.

I will write how I updating my SLES11 to SP4. I don’t have SP1 but it should be work the same as SP2 upgrade to SP3 and SP3 to SP4.

So this is my machine

VM-b0x:convey69:/convey69> uname -a
Linux VM-b0x 3.0.42-0.7-default #1 SMP Tue Oct 9 11:58:45 UTC 2012 (a8dc443) x86_64 x86_64 x86_64 GNU/Linux

VM-b0x:convey69:/convey69> cat /etc/SuSE-release
SUSE Linux Enterprise Server 11 (x86_64)
VERSION = 11
PATCHLEVEL = 2

why update? Because it better to get recent patch, fix OS vulnerabilities and update kernel (anything as latest we could get! So please do not ask me why need update)

On first run, you will got problem like this

VM-b0x:convey69:/convey69> sudo zypper ref -s
root's password:
Refreshing service 'nu_novell_com'.
Adding repository 'SLE11-SP4-Debuginfo-Updates' [done]
Adding repository 'SLE11-Public-Cloud-Module' [done]
Adding repository 'SLES11-SP4-Pool' [done]
Adding repository 'SLES11-SP4-Updates' [done]
Adding repository 'SLE11-SP4-Debuginfo-Pool' [done]
Refreshing service 'novell'.
Unexpected exception.
Parse error: repoindex.xml[1] Extra content at the end of the document
Please file a bug report about this.
See http://en.opensuse.org/Zypper/Troubleshooting for instructions.

To fix this shit, go and edit /etc/zypp/services.d/service.service by change enable=1 to enable=0

VM-b0x:convey69:/convey69> cat /etc/zypp/services.d/service.service
[service]
name=novell
enabled=0
autorefresh=1
url = http://nu.novell.com/
type = ris

After done fix previous problem, you can refresh repository without mess with run zypper (as root) command

VM-b0x:convey69:/convey69> sudo zypper ref -s
Refreshing service 'nu_novell_com'.
All services have been refreshed.
Retrieving repository 'SLES11-Extras' metadata [done]
Building repository 'SLES11-Extras' cache [done]
Repository 'SLES11-Pool' is up to date.
Retrieving repository 'SLES11-SP1-Pool' metadata [done]
Building repository 'SLES11-SP1-Pool' cache [done]
Retrieving repository 'SLES11-SP1-Updates' metadata [done]
Building repository 'SLES11-SP1-Updates' cache [done]
Repository 'SLES11-SP2-Core' is up to date.
Repository 'SLES11-SP2-Extension-Store' is up to date.
Retrieving repository 'SLES11-SP2-Updates' metadata [done]
Building repository 'SLES11-SP2-Updates' cache [done]
Retrieving repository 'SLES11-Updates' metadata [done]
Building repository 'SLES11-Updates' cache [done]
All repositories have been refreshed.

Patching SLES 11 SP-2 to SP-3

I previously refer to here (link is dead now, even on backway machine!) for information and guideline, but it not available anymore. No biggie.. just follow my steps below.

Run an Online Update

Make sure the currently installed version has the latest patches installed. Run an Online Update prior to the Online Migration. When using a graphical interface, start the YaST Online Update or the updater applet. On the command line, run the following commands (the last command needs to be run twice):

# zypper ref -s
# zypper update -t patch
# zypper update -t patch

Reboot the system if needed.

Get a list of these products by running the following command:

VM-b0x:convey69:/convey69> sudo zypper se -t product | grep -h -- "-migration" | cut -d'|' -f2
root's password:
 SUSE_SLES-SP1-migration
 SUSE_SLES-SP2-migration
 SUSE_SLES-SP3-migration

Install the migration products retrieved in the previous step with the command zypper in -t product <LIST_OF_PRODUCTS>

VM-b0x:convey69:/convey69> sudo zypper in -t product SUSE_SLES-SP3-migration
Refreshing service 'nu_novell_com'.
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following NEW package is going to be installed:
  SUSE_SLES-SP3-migration

The following NEW product is going to be installed:
  SUSE_SLES Service Pack 3 Migration Product

1 new package to install.
Overall download size: 4.0 KiB. After the operation, additional 3.0 KiB will be used.
Continue? [y/n/?] (y):

Register the products installed in the previous step in order to get the respective update channels:

VM-b0x:convey69:/convey69> sudo suse_register -d 2 -L /root/.suse_register.log
Execute command: /usr/bin/zypper --non-interactive ref --service
Execute command exit(0):
GUID:xxxyyyzzz
Execute command: /usr/bin/zypper --no-refresh --quiet --xmlout --non-interactive products --installed-only
Execute command exit(0):
installed products:           $VAR1 = [
          [
            'SUSE_SLES-SP3-migration',
            '11.2',
            '',
            'x86_64'
          ],
          [
            'SUSE_SLES',
            '11.2',
            'DVD',
            'x86_64'
          ]
        ];

Execute command: /usr/bin/lscpu
Execute command exit(0):
Execute command: /usr/bin/zypper --non-interactive targetos
Execute command exit(0):
list-parameters:   0
xml-output:        0
no-optional:       0
batch:             0
forcereg:          0
no-hw-data:        0
log:               /root/.suse_register.log
locale:            undef
no-proxy:          0
yastcall:          0
arg: $VAR1 = {
          'timezone' => {
                          'kind' => 'mandatory',
                          'value' => 'Europe/Vienna',
                          'flag' => 'i',
                          'description' => 'Timezone'
                        },
          'ostarget' => {
                          'kind' => 'mandatory',
                          'value' => 'sle-11-x86_64',
                          'flag' => 'i',
                          'description' => 'Target operating system identifier'
                        },
          'processor' => {
                           'kind' => 'mandatory',
                           'value' => 'x86_64',
                           'flag' => 'i',
                           'description' => 'Processor type'
                         },
          'platform' => {
                          'kind' => 'mandatory',
                          'value' => 'x86_64',
                          'flag' => 'i',
                          'description' => 'Hardware platform type'
                        }
        };

extra-curl-option:$VAR1 = [];

URL:               https://secure-www.novell.com/center/regsvc
listParams:        command=listparams
register:          command=register
lang:              english
initialDomain:     .novell.com
SEND DATA to URI: https://secure-www.novell.com/center/regsvc?command=listproducts&lang=en-US&version=1.0:


About to connect() to secure-www.novell.com port 443 (#0)
  Trying 130.57.66.5...
connected
Connected to secure-www.novell.com (130.57.66.5) port 443 (#0)
successfully set certificate verify locations:
  CAfile: none
  CApath: /etc/ssl/certs/
SSLv3, TLS handshake, Client hello (1):
SSLv3, TLS handshake, Server hello (2):
SSLv3, TLS handshake, CERT (11):
SSLv3, TLS handshake, Server finished (14):
SSLv3, TLS handshake, Client key exchange (16):
SSLv3, TLS change cipher, Client hello (1):
SSLv3, TLS handshake, Finished (20):
SSLv3, TLS change cipher, Client hello (1):
SSLv3, TLS handshake, Finished (20):
SSL connection using AES256-SHA
Server certificate:
         subject: C=US; L=Provo; ST=Utah; O=Novell, Inc.; CN=*.novell.com
         start date: 2015-02-23 00:00:00 GMT
         expire date: 2018-05-31 12:00:00 GMT
         subjectAltName: secure-www.novell.com matched
         issuer: C=US; O=DigiCert Inc; OU=www.digicert.com; CN=DigiCert SHA2 High Assurance Server CA
         SSL certificate verify ok.
Connection #0 to host secure-www.novell.com left intact
CODE: 302 MESSAGE: Moved Temporarily
RECEIVED DATA:
HTTP/1.1 302 Moved Temporarily
Date: Wed, 25 Apr 2018 02:51:49 GMT
Server: Apache/2.2.34 (Linux/SUSE)
Strict-Transport-Security: max-age=31536000;includeSubDomains
Location: http://secure-www.novell.com/center/regsvc/?command=listproducts&lang=en-US&version=1.0
Fill: wwwfill3
Content-Length: 0
Content-Type: text/plain
X-Mag: xxxxxx;yyyyyyy;zzzzzz;usrLkup->0;usrBase->0;getPRBefFind->0;getPRBefFind->0;PRAfterFind->0;swww_root;publicURL->0;swww;RwDis;FF1End->0;FP2->0;WS=zzzzzz;FP4->4;
Set-Cookie: xxxxxxx-yyyyyyy=zzzzzz; Path=/; Domain=.novell.com
Via: 1.1 secure-www.novell.com (Access Gateway-ag-xxxxxxxx-yyyyyyyyy)
Set-Cookie: lb_novell=xxxxxxx; Domain=.novell.com; Path=/
). https is required.://secure-www.novell.com/center/regsvc/?command=listproducts&lang=en-US&version=1.0
(15)
). https is required.://secure-www.novell.com/center/regsvc/?command=listproducts&lang=en-US&version=1.0
(15)
Closing connection #0
SSLv3, TLS alert, Client hello (1):

Refresh the repositories and services:

VM-b0x:convey69:/convey69> sudo zypper ref -s
Refreshing service 'nu_novell_com'.
All services have been refreshed.
Repository 'SLES11-Extras' is up to date.
Repository 'SLES11-Pool' is up to date.
Repository 'SLES11-SP1-Pool' is up to date.
Repository 'SLES11-SP1-Updates' is up to date.
Repository 'SLES11-SP2-Core' is up to date.
Repository 'SLES11-SP2-Extension-Store' is up to date.
Repository 'SLES11-SP2-Updates' is up to date.
Repository 'SLES11-Updates' is up to date.
All repositories have been refreshed.

Check the list of repositories you can retrieve with zypper lr.

If any of these repositories is not enabled (the SP3 ones are not enabled by default when following this workflow), enable them with zypper modifyrepo --enable REPOSITORY ALIAS, for example:

VM-b0x:convey69:/convey69> sudo zypper modifyrepo --enable SLES11-SP3-Pool SLES11-SP3-Updates
Repository 'nu_novell_com:SLES11-SP3-Pool' has been successfully enabled.
Repository 'nu_novell_com:SLES11-SP3-Updates' has been successfully enabled.

If your setup contains third-party repositories that may not be compatible with SP3, disable them with zypper modifyrepo --disable REPOSITORY ALIAS.

Now everything is in place to perform the distribution upgrade with zypper dup --from REPO 1 --from REPO 2 .. Make sure to list all needed repositories with --from, for example:

sudo zypper dup --from SLES11-SP3-Pool --from SLES11-SP3-Updates

Confirm with y to start the upgrade.

upon completion of the distribution upgrade from the previous step, run the following command:

sudo zypper update -t patch

Now that the upgrade to SP3 has been completed, you need to re-register your product:

sudo suse_register -d 2 -L /root/.suse_register.log

Lastly, reboot your system with sudo /sbin/shutdown -r now

Your system has been successfully updated to Service Pack 3.

VM-b0x:convey69:/convey69> uname -a
Linux VM-b0x 3.0.101-0.47.71-default #1 SMP Thu Nov 12 12:22:22 UTC 2015 (b5b212e) x86_64 x86_64 x86_64 GNU/Linux

VM-b0x:convey69:/convey69> cat /etc/SuSE-release
SUSE Linux Enterprise Server 11 (x86_64)
VERSION = 11
PATCHLEVEL = 3

for patching SLES 11 SP3 to SP4, the setup are using same step but do it properly from SP1 to SP2, SP2 to SP3 and lastly SP3 to SP4.

Maybe you will face problem like this

$ zypper dup --from SLES11-SP4-Pool --from SLES11-SP4-Updates
$ sudo zypper update -t patch
Refreshing service 'nu_novell_com'.
Loading repository data...
Reading installed packages...
Resolving package dependencies...

Problem: openssh-askpass-6.2p2-0.24.1.x86_64 requires openssh = 6.2p2, but this requirement cannot be provided
  uninstallable providers: openssh-6.2p2-0.9.1.x86_64[nu_novell_com:SLES11-SP3-Pool]
                   openssh-6.2p2-0.13.1.x86_64[nu_novell_com:SLES11-SP3-Updates]
                   openssh-6.2p2-0.21.1.x86_64[nu_novell_com:SLES11-SP3-Updates]
                   openssh-6.2p2-0.24.1.x86_64[nu_novell_com:SLES11-SP3-Updates]
 Solution 1: Following actions will be done:
  do not install patch:slessp3-openssh-2016011301-12325-1.noarch
  do not install patch:slessp3-openssh-9357.noarch
 Solution 2: Following actions will be done:
  downgrade of openssh-6.6p1-36.15.1.x86_64 to openssh-6.2p2-0.24.1.x86_64
  deinstallation of openssh-helpers-6.6p1-36.15.1.x86_64
 Solution 3: deinstallation of openssh-askpass-1.2.4.1-1.46.x86_64
 Solution 4: break openssh-askpass-6.2p2-0.24.1.x86_64 by ignoring some of its dependencies

Choose from above solutions by number or cancel [1/2/3/4/c] (c): 1

Well, plase do choose what ever you preferred. Because the latest openssl,openssh, curl is too old. We will take care manually (fetch source code, config, compile and install). I will wrote the tutorial later. Adios!

Edit

Have some thoughts, discussion or feedback on this post?
IndieWeb Interactions

Below you can find the interactions that this page has had using Indieweb. Which means, you can mentioned this URL on any website that support WebMention. Have you written a response to this post? Let me know the URL:

((Do you use a website that do not set up with WebMention capabilities? You can use Comment Parade.)