openSUSE 10.3 survival guide

or what a Debian hacker should know when using openSUSE

Flip the switch

I have switched my main system from Ubuntu Gutsy to openSUSE 10.3 recently. A very smooth transition, I must say. I can mostly run the same software and the same up to date versions. Notable exceptions: bzr support (python-paramiko, python-celementtree), etherwake, kvm, run-parts, sawfish, upstart. I still switch between both systems a bit, using a mix of $HOME in GIT (git-swap) and altenatives-like symlink setup (alt), and running the other chrooted in /other.

Panel and menu

suse computer SUSE does not use the Application/Places/System menus on the top panel, but it sports a `Computer' button (right where Windows has its start button) on the bottem panel that opens a smorgasbord panel of choices. suse computer menu

My first impression was that it's awkward but after using it for a while it turns out to be real nifty. Now that the system is configured and I have sawfish compiled for SUSE I hardly ever use the GUI menus, though.

Zypper

Zypper is SUSE's command line apt/yum replacement.

One word of caution if you're on x86_64: do not use yum unless you really know what you're doing and not before having added
exclude=*i586*
to your /etc/yum.conf. If you don't, yum will easily break your system. There is little chance of this getting fixed, because yum breaking you system is a design choice #347624).

The biggest thing is SUSE's rpm+zypper+Yast2 based package management and configuration tools versus Ubuntu/Debian's dpkg+apt+debconf (Red Hat et al.'s rpm+yum+???, rpm+apt-rpm+???). After apt and yum, zypper seems to be yet another effort exploring the possibilities of this realm. I wonder when the era of unification can start, it seems this is still in the early stages and there is still much need to explore and diversify. rPath anyone?

Miscellaneous

Another thing is that SUSE 10.3 is not using upstart yet so digg up my inittab entries.

Cheat sheet

Below is a list of the most different/missing things that I had to look for. N/A means: haven't figured out yet how to do this yet. script means: I'm using this addon script.

Ubuntu/Debian openSUSE
list packages dpkg -l rpm -qa
list packages contents dpkg -L rpm -ql
configure network interfaces /etc/network/interfaces [man interfaces] /etc/sysconfig/network/ifcfg-eth0 [man ifcfg]
concise list of installable packages apt-cache search . zypper search [script: zypper-list #348676)]
get info on package apt-cache show zypper info#348683)/rpm -qi
install or update package apt-get install zypper install
install updates apt-get upgrade zypper update
refresh package cache apt-get update zypper refresh
install build dependencies of a package apt-get build-dep zypper build-deps-install [script: zypper-build-dep] #348685)
packages in historic order of installing script: dpkg-history rpm -qa
prevent package from being updated script: dpkg-hold /etc/zypp/locks(man zypper)
find package for uninstalled file [apt-file update;] apt-file search webpin
online search packages by file packages.ubuntu.com packages.debian.org packages.opensuse-community.org
favourite mirror <CC>.archive.ubuntu.com ftp.<CC>.debian.org download.opensuse.org
full list of files by package Contents-<arch>.gz Contents-<arch>.gz ARCHIVES.gz (all archs)
search installable packages by name apt-cache search zypper search
search installable package descriptions apt-cache search zypper search -d#309714)
strip version from package sed -e s/_.*// sed -e 's/-[^-]\+-[^-]\+$//'
peek into log files sudo usermod -a -G adm janneke sudo usermod -G root janneke
[re]start gdm /etc/init.d/gdm /etc/init.d/xmd
Configure gmd (listen to 6000) edit: /etc/gdm/custom.conf edit: /etc/sysconfig/displaymanager, /etc/gdm/gdm_sysconfig.conf and /etc/gdm/custom.conf (all three?)
gnome settings ~/.gnomerc ~/.xinitrc (xmodmap settings have no effect?)
apache root /var/www /srv/www/htdocs
package download cache /var/cache/apt/archives /var/cache/zypper/RPMS [script:zypper-download]#348733)

Not installed by default

From the default install I was missing: at, locate (slocate is not available).
#348683 - Zypper [info] is amazingly slow  ::FIXED in trunk
#309714 - zypper search -d partially working  ::FIXED in trunk
#348676 - zypper should list package descriptions/summaries ::FIXED in trunk
#348685 - zypper should list or install build dependencies for package  ::FIXED in trunk
#348733 - zypper should have --download-only and --cache options  ::FIXED in trunk
#347624 - yum installs i586 packages on x86_64 which easily results in serious breakage