From Segfault
Jump to navigation Jump to search


Static network configuration

$ cat /etc/sysconfig/network/ifcfg-eth0
$ cat /etc/sysconfig/network/routes
default - -
$ grep ^NETCONFIG_DNS_STATIC /etc/sysconfig/network/config
$ cat /etc/HOSTNAME

We also might want to disable those link-local addresses:[1]

$ grep LINKLOCAL_INTERFACES /etc/sysconfig/network/config 

Restart networking:

$ service network restart

Note: when using DHCP, the machine's hostname might get overwritten by the response from the DHCP server. Set DHCLIENT_SET_HOSTNAME in /etc/sysconfig/network/dhcp to "no" to disable this behaviour.


Remove unused packages:

zypper remove command-not-found libreoffice* gimp* cups openoffice* ghostscript* ispell*

Install missing packages:

zypper install  bash-completion cachefilesd checksec checkpolicy dkms git iftop iotop iperf ksh less lm_sensors lsof man-db mlocate mpg123 ncurses-devel openssh-clients powertop pv screen sharutils strace sysstat

For desktop systems:

firefox gedit gnome-keyring libreoffice-writer mozilla-https-everywhere mozilla-noscript mozilla-privacy-badger openssh-askpass thunderbird vlc

Disable unused services:

for i in alsasound avahi-daemon avahi-dnsconfd bluez-coldplug cpufreq cups irq_balancer fbset kbd \
         mcelog nscd smartd splash splash_early vboxadd haldaemon SuSEfirewall2_setup SuSEfirewall2_init; do 
   chkconfig $i off

Missing /usr/share/zoneinfo

Apparently, /usr/share/zoneinfo is missing from a (minimal) openSUSE installation and Zypper does not know how to provide it:

$ zypper what-provides /usr/share/zoneinfo
No providers of '/usr/share/zoneinfo' found.


$ zypper install /usr/share/zoneinfo
'/usr/share/zoneinfo' not found in package names. Trying capabilities.
No provider of '/usr/share/zoneinfo' found.

Luckily had the answer, we needed to install the timezone package:

$ zypper install timezone
$ rpm -ql timezone | grep -m1 share/zoneinfo 


zypper refresh
zypper update


First we need to update our current repository:

zypper refresh
zypper update

Now we're ready to upgrade to the new release

zypper modifyrepo --all --disable --no-refresh
zypper addrepo --refresh --name "openSUSE-$VER-OSS"  $VER/repo/oss/     repo-$VER-oss
zypper addrepo --refresh --name "openSUSE-$VER-non-OSS"$VER/repo/non-oss/ repo-$VER-non-oss
zypper addrepo --refresh --name "openSUSE-$VER-Update"$VER/                    repo-$VER-update
zypper addrepo --refresh --name "openSUSE-$VER-Update-non-OSS"$VER-non-oss/            repo-$VER-update-non-oss

Now the configured repositories should look somewhat like this:

$ zypper repos --uri --show-enabled-only
# | Alias                    | Name                         | Enabled | Refresh | URI
1 | repo-12.2-oss            | openSUSE-12.2-OSS            | Yes     | Yes     |             
2 | repo-12.2-non-oss        | openSUSE-12.2-Non-OSS        | Yes     | Yes     |         
3 | repo-12.2-update         | openSUSE-12.2-Update         | Yes     | Yes     |
4 | repo-12.2-update-non-oss | openSUSE-12.2-Update-non-OSS | Yes     | Yes     |

Now the actual upgrade can begin:

zypper refresh
zypper dist-upgrade --download-in-advance


Adding or removing custom repositories:[2] can be done via Zypper too. Let's say we want to add the home:plater:atop repository in an openSUSE Tumbleweed installation:

  • Go to
  • Click on the "Go to download repository" link to get the repository URL
zypper addrepo -f plater
zypper refresh

Now the packages in that repository can be installed:

$ zypper search --repo plater | grep -wc package

Bugs cannot open shared object file

During an upgrade to Tumbleweed, the Zypper command barfed with:[3]

$ zypper lr --details
zypper: error while loading shared libraries: cannot open shared object file:

And, in yast:

Internal error. Please report a bug report with logs.
Details: component cannot import namespace 'Pkg'
Caller: /usr/lib64/ruby/vendor_ruby/2.1.0/yast/yast.rb:162:in `import_pure'

The solution was to install the latest zypper packages manually:

rpm --upgrade
rpm --upgrade
rpm --upgrade