openSUSE
- OpenSUSE specific
- Speed up tips for (suse) linux installation
- Problem w/ ZEN/rug/rpm database
- Speedup Package Management
- Keyboard setting for diacritical characters
- Monitor an OpenSUSE system
- Disable hardware polling for CD-drives
- Install all updates using zypper
- How to locally cache zypper update files
- Check and install media formats
- Boot options in suse grub
- Zypper tips
- Improve the font rendering - using subpixel hinting
- Things to do after a fresh installation of openSUSE 11.4
- Repos
- Touchpad
- Things to do after a fresh installation of openSUSE 12.1
- Radeon
- How to have the latest kernel in openSUSE
- Fixing desktop freezes on large copies
- KDE font settings
- How to make the screen brightness keys work again in KDE
- Snapper
- Ansible
- Snapper PvdM
- Kde over ssh
- Change root's theme
- Upgrade using patch
- KDE apps look ugly and missing icons over ssh
- Things to do after a fresh installation of OpenSUSE
- Updating OpenSUSE in-place using zypper dup
- Repositories in openSUSE - The current state
- Software regelmatig te checken
- Upgrading the system to a newer version using zypper dup
OpenSUSE specific
- kde over ssh
- Snapper
- Snapper PvdM
- How to start qbittorrent
- How to make the screen brightness keys work again in KDE
- bluetooth
- journald
- systemd journal log file setting
- KDE apps look ugly and missing icons over ssh
- KDE font settings
- things to clean up before doing large copy of entire system
- installing spotify on openSUSE 12.3
- fixing desktop freezes on large copies
- A guide to using systemd
- Things to do after a fresh installation of openSUSE 12.1
- Things to do after a fresh installation of openSUSE 11.4
- improve the font rendering - using subpixel hinting
- How to have the latest kernel in openSUSE
- Install openSUSE via SSH
- Upgrading to KDE 4.5.0 on OS11.3
- Upgrading the system to a newer version using zypper dup
- Things to do after a fresh installation of OpenSUSE
- Repositories in openSUSE - The current state
- Fixing CUPS login problems on SUSE
- Speed up tips for (suse) linux installation
- Problem w/ ZEN/rug/rpm database
- installatie openftd in OpenSUSE 10.3
- Speedup Package Management <- on opensuse 10.x
- Install a PXE boot server on 11.1
- monitor an OpenSUSE system
- Install all updates using zypper
- Install ATI/NVIDIA drivers in Opensuse 11
- How to locally cache zypper update files
- Check and install media formats
- boot options in suse grub
- openSUSE 11.1: enable the KDE4.2 repos
- Stop SSH brute force attacks
- codecs issues 11.1
- Upgrade openSUSE 10.3 to 11.1 while the system is running using zypper dup
- Best way to use GRUB in a multiboot system
- How to resue your system when the kernel won't boot
- Fix suspend to RAM on a HP8530p EliteBook on OpenSUSE 11.2
- OpenSUSE 11.2 MP3 playback in Amarok
- Updating OpenSUSE in-place using zypper dup
- KDE openSUSE repositories explained
- Installation of openfire jabber xmpp server on openSUSE server
- How to toggle compositing in KDE on the CLI command line
- KDE4.4 issues openSUSE 11.2
- Starting chromium as default browser in thunderbird
- IRC channel commands
- icedtea error on starting java in browser
- vlc crashes when switching interface to qt4
- smt
Speed up tips for (suse) linux installation
Speed up Linux installation
Tip: Speeding up the install time on SUSE Linux Applies to:
* Novell Linux Desktop 9
* Open Enterprise Server
* SUSE Linux Professional 9.3
* SUSE Linux 10
* SUSE Linux Enterprise Server
SYNOPSIS: hdparm - get/set hard disk parameters
DESCRIPTION:
This cool solution will show you how it is possible to speed up the install time of your CD-ROM installation of SUSE Linux by using Linux shell command hdparm. hdparm is an a command line interface to various ATA/IDE hard disk device drivers.1 Warning, 'hdparm' may force your system to use higher values without regards to your hardware's limitations. It is a risk to use this program improperly and may cause damage to your systems. Please use extreme caution and do not exceed your hardwares limitations. Additionally WE TAKE NO RESPONSIBILITY FOR DAMAGED HARDWARE OR CORRUPTED DATA.
Know bugs are listed on Source Forge's website see notes for information
The following steps are needed to use hdparm in the installation of your SuSE LINUX system. Please note that this command only works with IDE devices, CDROMS and Hard-drives.
- Place the SUSE Linux disk 1; the install cd in the CD-ROM and boot to that drive.
- On the first screen enter desired parameters you need to perform your specific SuSE LINUX installation.
- The next screen is the Licensing Screen; on this screen select the "I Agree" button.
- Next is the Language screen; on this screen choose your language and click "Accept".
- This is the bit we have been waiting for: This next screen is Installation Setting screen.
- Here we will drop into a shell prompt by using Ctrl+Alt+F2. This key combination will normally take you out of your Xwindow session and drop you into a terminal (tty2). Since we are in the process of installing SUSE LINUX, this key combination will take us away from the installation screen and drop you in to a terminal (tty2), or command prompt. Don't worry. Your installation is still there. You can return by using the Alt+F7.
- Once on the command line type:
hdparm /dev/hda thenENTER
You will see something similar to this.
/dev/hda:
multcount = 16 (on)
IO_support = 0 (default 16-bit)
unmaskirq = 0 (off)
using_dma = 0 (off)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 8 (on)
geometry = 9726/255/63, sectors = 156250000, start =34523
- Notice the multcount is set to 16, using_dma is set to off, and that the IO Support is set to 16 bit.
- Re-type the command:
hdparm -c1 -d1 -m1 /dev/hda ENTER
Comparing the differences from the last time, you should now see that mulcount is set to 1, or on, IO support is now 32 bit and.using_dma is turned on.
/dev/hda:
multcount = 1 (on)
IO_support = 1 (32-bit)
unmaskirq = 0 (off)
using_dma = 1 (on)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 8 (on)
geometry = 9726/255/63, sectors = 156250000, start = 0
When you complete your desired changes to your devices, you can return to the installation screen by using the Alt+F7.
muticount -m is used to get or set the sector count for a device that supports multiple sector IO.
IO support -s is used to set the IO setting on a device. Most devices are set to use 16bit. By setting this to 1 it turns on 32bit IO for faster transfers of information.
Using_dma -a by default this is turned off. DMA or Direct Memory Access is way to control system memory without using the CPU.
If you would like more information about hdparm; browse the official hdparm website at http://sourceforge.net/projects/hdparm/ or additional options may be found in the man pages. You now have the knowledge to decrease your installation times by exerting control over your IDE devices with the hdparm Linux shell command. If you have any questions about this Cool Solution, feel free to drop me an email anytime at tvickers@idltechnology.comDit e-mailadres wordt beschermd tegen spam bots, u heeft Javascript nodig om het te bekijken .
Tony Vickers is the CTO and founder of IDL technology Group, Inc. IDL has been helping companies implement Enterprise Open Source Technologies since 1994. For more information, please visit us on the web located at www.idltechnology.com
Notes
1. Lord, Mark and Leppikangas, Tomi. "hdparm(8)." (Linux man page, 2005), 1.
Barr, Joe. "Hdparm and the Zen of data transfer Monday December," Enterprise Linux on the web, 07 October 2005.
<http://enterprise.linux.com/article.pl?sid=04/12/14/166253&tid=89> (December 20, 2004).
Flickenger, Rob. "Speeding up Linux Using hdparm." Linux Dev Center on the web, 07 October 2005.
<http://www.linuxdevcenter.com/pub/a/linux/2000/06/29/hdparm.html> (June 29, 2000).
Lord, Mark. "hdparm(8)." <http://sourceforge.net/projects/hdparm/ hdparm> (April, 2005).
KNOWN BUGS:
1.
ATA security options does not always work, error message: Problem issuing security command: Cannot allocate memory (http://sourceforge.net/tracker/?atid=736682&group_id=136732&func=browse).
2.
hdparm -t with 2 disks: WD (hdb) and Seagate(hda). hdparm -t /dev/hda -Timing buffered disk reads: -1504 MB in xxx seconds = MB/sec an infinite value (http://sourceforge.net/tracker/?atid=736682&group_id=136732&func=browse).
1.
When making 6.0 or 6.1 an "987: IDE_DRIVE_TASK_OUT undeclared" error occur(http://sourceforge.net/tracker/?atid=736682&group_id=136732&func=browse).
2.
Acoustic management for SAMSUNG SP1614N disk the -M option to control the acoustic level, but it seems non-functional (http://sourceforge.net/tracker/?atid=736682&group_id=136732&func=browse).
Problem w/ ZEN/rug/rpm database
'''Problem w/ ZEN/rug/rpm database
this problem is obsolete, it happened with OpenSUSE 10.2 and is no longer an issue in 10.3
Things to try when your openSUSE gets errors with the package database:
rm -rf /var/tmp/* && rczmd restart && rug refresh
works around the problem. I'm not sure how to reproduce it though. It seems to happen randomly.
Speedup Package Management
Speeding up the package manager
Package Management is one part of the system where massive databases are thrown around, changed incrementally and is generally used heavily. Due to incremental nature of modifications it will cause the databases used to fragment, both internally (in the database blob) and externally (on the disk).
In openSUSE 10.3 we have two kinds of databases for package management.
- The zypp cache SQLITE database in
/var/cache/zypp/zypp.db. - The RPM database in
/var/lib/rpm/.
Defragment internally
- Cleaning up sqlite databases can be done using the
VACUUMcommand.
- For the ZYPP cache database:
-
sqlite3 /var/cache/zypp/zypp.db vacuum - Or alternatively regenerate it from scratch:
-
rm /var/cache/zypp/zypp.db ; zypper refresh
- Defragmenting the RPM database
-
After largish update it is helpful to run
rpm --rebuilddbonce.
- This is just necessary after lots of packages changed/updated/installed and takes some time (10 minutes on a Laptop).
Defragment externally
While Linux filesystems try to not create heavily fragmented files, the slow increasing nature of the databases used in packagemanagement has fragmentation patterns.
So to best way to get rid of it, is to recreate the files using the pattern:
cp file file.new # check for errors!
rm file
mv file.new file
- zypp database
-
Either remove it and regenerate it using
zypper refreshor just apply -
the cp/rm/mv on
/var/cache/zypp/zypp.db.
- RPM database
-
Use the cp/rm/mv trick on
/var/lib/rpm/Packages, Basenames, Filemd5s, Dirnames
Sample script
#!/bin/sh
sqlite3 /var/cache/zypp/zypp.db vacuum
rpm --rebuilddb # takes long
for fn in /var/cache/zypp/zypp.db \
/var/lib/rpm/Packages \
/var/lib/rpm/Filemd5s \
/var/lib/rpm/Dirnames \
/var/lib/rpm/Basenames
do
cp $fn $fn.new || exit 1
rm $fn
mv $fn.new $fn
done
zypp,rpm,speed,package management
Keyboard setting for diacritical characters
In KDE:
Regional settings
keyboard layout
xkb options | enable
compose key position | menu is compose
Monitor an OpenSUSE system
- use iostat (package sysstat)
- siga (outputs in HTML)
- sitar (SLES)
Disable hardware polling for CD-drives
hal cdrom polling hal is a core component of the various desktop environments and deals with all sorts of hardware interaction. One component of the hal daemon is the part where it polls the cdrom drive regularly (as often as once every two seconds!) to see if the user has inserted a CD. This is used, for example, to automatically open a new window with a file browser for the CD.
Such regular polling will keep the hardware awake somewhat; the amount of power consumed depends on the exact type of CDROM drive. It also depends on the presence of the ALPM feature.
If you rarely or never insert CDs (for example because the machine in question is a server located 3000 miles away), you can save some power by stopping this polling.
Current versions of hal have a special command for this:
hal-disable-polling --device /dev/scd0
Note that this means that you will not get a pop-up window if you insert a CD. To enable this polling again, use the this command:
hal-disable-polling --device /dev/scd0 --enable-polling
Newer SATA-based CDROM drives have the capability to notify the machine when a CD gets inserted, making polling unnecessary. Both the kernel and hal are currently undergoing development to detect and support this capability, so that polling is not needed at any time for these devices.
Install all updates using zypper
Install all updates using Zypper
The following command gives you ALL updates:
zypper up -t package
How to locally cache zypper update files
How to locally cache zypper update files
Maybe someday you try zypper dup to actualize your distribution and in middle of process it fail, because you are disconnected or some packages is actualized before you download it (especially on factory this can happen). It is more safety download packages at first and then install from this local files.
How todo this is little tricky, at first you must enable caching downloaded files (I do it only for remote connection):
zypper mr –keep-packages –remote
So now you cache all downloaded files and now try testing run of dup. Trick is that all packages download for that test is cached.
zypper dup –dry-run
Now if you have slow connection I reccomend also disable autorefresh for all repositories, because if repository is refreshed before dup, you can easily find that some packages is newer than package in cache and you must download it.
zypper mr –all –no-refresh
Now is everything prepared for zypper dup, which use files from cache. Cache can take quite lot of disk space, so after dup you can clean it.
zypper clean
And thats all. This features work from OpenSuse 11 and you can also use this trick for zypper update or zypper install.
Check and install media formats
1. Check if there are missing dependencies
Code:
# LC_ALL=C zypper ve
Reading installed packages...
Dependencies of all installed packages are satisfied.
2. Check if there are packages installed from the VideoLAN repository
Code:
$ rpm -qa --queryformat '%{NAME} -> %{VENDOR}\n' | grep -i VideoLAN
libdvdcss -> VideoLAN Project (http://www.videolan.org)
Only libdvdcss should be installed from the VideoLAN repository.
3. Check your basic multimedia packages
Code:
$ rpm --verify --query --all 'libav*' 'libpostproc*' 'libswscale*'
If it return anything there is a problem, check man rpm for details. No need to reinstall to be sure, this check is 100% sure.
4. Verify you have xine installed and installed from Packman
Code:
$ rpm --query --queryformat '%{NAME}-%{VERSION}-%{RELEASE}-%{ARCH} -> %{VENDOR}\n' libxine1 libxine1-codecs
libxine1-1.1.15-44.pm.0-x86_64 -> packman.links2linux.de
libxine1-codecs-1.1.15-44.pm.0-x86_64 -> packman.links2linux.de
5. Check your xine packages
Code:
$ rpm --verify --query --all '*xine*'
6. Verify you have all the gstreamer plugins (codecs) installed and installed from Packman
Code:
$ rpm --query --queryformat '%{NAME}-%{VERSION}-%{RELEASE}-%{ARCH} -> %{VENDOR}\n' gstreamer-0_10-ffmpeg gstreamer-0_10-fluendo-mp3 gstreamer-0_10-fluendo-mpegdemux gstreamer-0_10-fluendo-mpegmux gstreamer-0_10-plugins-bad gstreamer-0_10-plugins-base gstreamer-0_10-plugins-good gstreamer-0_10-plugins-good-extra gstreamer-0_10-plugins-ugly
gstreamer-0_10-ffmpeg-0.10.5-42.pm.1-x86_64 -> packman.links2linux.de
gstreamer-0_10-fluendo-mp3-0.10.7-42.pm.2-x86_64 -> packman.links2linux.de
gstreamer-0_10-fluendo-mpegdemux-0.10.15-42.pm.1-x86_64 -> http://packman.links2linux.de
gstreamer-0_10-fluendo-mpegmux-0.10.4-42.pm.1-x86_64 -> packman.links2linux.de
gstreamer-0_10-plugins-bad-0.10.8-42.pm.1-x86_64 -> packman.links2linux.de
gstreamer-0_10-plugins-base-0.10.21-42.pm.1-x86_64 -> packman.links2linux.de
gstreamer-0_10-plugins-good-0.10.10-42.pm.3-x86_64 -> packman.links2linux.de
gstreamer-0_10-plugins-good-extra-0.10.10-42.pm.3-x86_64 -> packman.links2linux.de
gstreamer-0_10-plugins-ugly-0.10.10-42.pm.1-x86_64 -> packman.links2linux.de
7. Check your gstreamer packages
Code:
$ rpm --verify --query --all '*gst*'
8. Check your MPlayer package
Code:
$ rpm --verify MPlayer
9. Check your VLC packages
Code:
$ rpm --verify --query --all '*vlc*'
.....UG. /usr/bin/qvlc
.....UG. /usr/bin/svlc
.....UG. /usr/lib64/vlc/gui/libqt4_plugin.so
Like you see in this case there is a problem, but it's just a permissions problem. Anyway it's a packaging problem I'm going to report to Packman so they can fix it.
10. Check your w32codec package
Code:
$ rpm --verify w32codec-all
package w32codec-all is not installed
Note that this package only adds support for some rare formats, and only works on 32bits systems. On a x86-64 system it will not make any difference.
If after checking all this you are unable to fix your problem open a thread in this forum. But copy & paste (yes, c&p no just "everything seems ok") the commands from this post and your results, so we know you followed them correctly. And also give us a copy of your installed packages... don't say "I have xine from Packman", prove it!!! Code:
$ rpm --query --all 'libav*' 'libpostproc*' 'libswscale*' '*xine*' '*gst*' MPlayer '*vlc*' | grep -v avahi | sort
amarok-xine-1.4.10-100.pm.1
gstreamer-0_10-0.10.21-42.pm.3
gstreamer-0_10-ffmpeg-0.10.5-42.pm.1
gstreamer-0_10-fluendo-mp3-0.10.7-42.pm.2
gstreamer-0_10-fluendo-mpegdemux-0.10.15-42.pm.1
gstreamer-0_10-fluendo-mpegmux-0.10.4-42.pm.1
gstreamer-0_10-lang-0.10.21-42.pm.3
gstreamer-0_10-plugins-bad-0.10.8-42.pm.1
gstreamer-0_10-plugins-bad-lang-0.10.8-42.pm.1
gstreamer-0_10-plugins-base-0.10.21-42.pm.1
gstreamer-0_10-plugins-base-lang-0.10.21-42.pm.1
gstreamer-0_10-plugins-farsight-0.12.9-0.pm.3
gstreamer-0_10-plugins-good-0.10.10-42.pm.3
gstreamer-0_10-plugins-good-extra-0.10.10-42.pm.3
gstreamer-0_10-plugins-ugly-0.10.10-42.pm.1
gstreamer-0_10-plugins-ugly-lang-0.10.10-42.pm.1
gstreamer-0_10-utils-0.10.21-42.pm.3
gstreamer-utils-0.10.21-42.pm.3
kdemultimedia3-video-xine-3.5.10-5.21
libavc1394-0-0.5.3-104.1
libavcodec52-0.4.9.15866svn-20081117.pm.2304
libavdevice52-0.4.9.15866svn-20081117.pm.2304
libavformat52-0.4.9.15866svn-20081117.pm.2304
libavogadro0-0.8.1-18.1
libavutil49-0.4.9.15866svn-20081117.pm.2304
libgstapp-0_10-0-0.10.8-42.pm.1
libgstinterfaces-0_10-0-0.10.21-42.pm.1
libgstreamer-0_10-0-0.10.21-42.pm.3
libpostproc51-0.4.9.15866svn-20081117.pm.2304
libswscale0-0.4.9.15866svn-20081117.pm.2304
libvlc2-0.9.6-0.pm.1
libvlccore0-0.9.6-0.pm.1
libxine1-1.1.15-44.pm.0
libxine1-aa-1.1.15-44.pm.0
libxine1-codecs-1.1.15-44.pm.0
MPlayer-1.0rc2_r27637-3.pm.3
phonon-backend-gstreamer-0_10-4.2.0-53.3
phonon-backend-xine-4.1.3-59.11
vlc-0.9.6-0.pm.1
vlc-noX-0.9.6-0.pm.1
vlc-qt-0.9.6-0.pm.1
xinetd-2.3.14-115.1
xine-ui-0.99.5-161.1
And to avoid problems... the most important thing I can say you: even if YaST/zypper/updater gives you such an option... **NEVER** ignore a dependency. Change vendor is ok, ignore dependencies never is a good idea.
Boot options in suse grub
install=http://provisioning/.......... --> where to boot OS from
autoyast=http://provisioning/......... --> where to get autoyast file from
Zypper tips
To check from which repo package came from
# rpm -qa --qf '%-20{NAME} %-20{VENDOR}\n' 'libav*5[678]'
To install only packages from one repo
#zypper in -r pvdm-kde43 amarok
Change the behaviour of download-install-download-install-download to download all-install all
modify /etc/zypp/zypp.conf and find and change:
commit.downloadMode = DownloadInAdvance
upgrading your system using 'zypper dup'
- When you want to do an upgrade, "zypper dup" actually brings your system to the version of the available packages. This may mean downgrading and removing of installed packages.
- The recommended way of doing this is to perform it against a specific repo: use
zypper dup -from repo -r, --repo <alias|#|URI> Load only the specified repository.
zypper dup -r 5 -r 6 -r 7
- If you intend to use "zypper dup" without any specific repostitory, you need to define repo priorities if you don't want to encounter surprises.
- For the full story read http://duncan.mac-vicar.com/blog/archives/619 here.
=if you want to find a certain file:=
zypper in 'libqtiff.so()(64bit)'
Reading installed packages...
'libqt4-x11' providing 'libqtiff.so()(64bit)' is already installed.
Nothing to do.
if you want to install a certain version:
zypper in MozillaFirefox \>= 3
Other examples:
zypper in yast* # install all yast modules
zypper in -t pattern lamp_server # install lamp_server pattern (packages needed for a LAMP server)
zypper in vim -emacs # install vim and remove emacs in one go
zypper in amarok packman:libxine1 # install libxine1 from packman and amarok from any repo
zypper in bitchx-1.1-81.x86_64.rpm # install bitchx rpm from local directory
zypper in -f subversion # force reinstallation of subversion
search packages
zypper search -s --match-exact virtualbox-ose
Reading installed packages...
S | Name | Type | Version | Arch | Repository
--+----------------+---------+------------+--------+------------------------------------
v | virtualbox-ose | package | 1.6.2-2.1 | x86_64 | VirtualBox OSE
i | virtualbox-ose | package | 1.5.6-33.1 | x86_64 | openSUSE-11.1-Oss
v | virtualbox-ose | package | 1.5.6-20.5 | x86_64 | VirtualBox OSE (
v | virtualbox-ose | package | 1.6.2-2.1 | i586 | VirtualBox OSE
v | virtualbox-ose | package | 1.5.6-33.1 | i586 | openSUSE-11.1-Oss
v | virtualbox-ose | package | 1.5.6-20.3 | i586 | VirtualBox OSE
patterns
list patterns:
zypper patterns
information on packages
zypper if amarok
Information for package amarok:
Repository: @System
Name: amarok
Version: 2.2.0-38.1
Arch: x86_64
Vendor: obs://build.opensuse.org/KDE
Installed: Yes
Status: up-to-date
Installed Size: 24.2 MiB
Summary: Media Player for KDE
Description:
Amarok is a media player for all kinds of media. This includes MP3, Ogg
Vorbis, audio CDs, podcasts and streams. Play lists can be stored in
.m3u or .pls files.
Other examples:
zypper info -t patch MozillaFirefox # show information about 'MozillaFirefox' patch
zypper patch-info MozillaFirefox # the same as above
zypper info -t pattern lamp_server # show info about 'lamp_server' pattern
zypper info -t product openSUSE-FTP # show info about specified product
dependencies
what-provides or wp
To list all providers of specified capability, do:
zypper wp firefox
Reading installed packages...
S | Name | Type | Version | Arch | Repository
--+----------------+---------+-------------+--------+------------------
i | MozillaFirefox | package | 3.0-0.1 | x86_64 | Updates for 11.1
v | MozillaFirefox | package | 2.9.95-25.1 | x86_64 | openSUSE-11.1-Oss
v | MozillaFirefox | package | 3.0-0.1 | i586 | Updates for 11.1
v | MozillaFirefox | package | 2.9.95-25.1 | i586 | openSUSE-11.1-Oss
Regarding optional dependencies, we do have them, and use them. They're enabled by default. To avoid the several hundred unexpected packages like in the example in the article you can use zypper with --no-recommends or turn them off in the zypper.conf config file.
The zypper summary before an installation distinguishes between hard dependencies and recommends, so you can see what turning recommends off would have saved you even if you didn't.
package locks
To lock all packages starting with 'yast2', do:
zypper al 'yast2*'
Reading installed packages...
Specified lock has been successfully added
To list currently active locks:
zypper ll
# | Name | Type | Repository
--+------------------+---------+-----------
1 | libpoppler3 | package | (any)
2 | libpoppler-glib3 | package | (any)
3 | yast* | package | (any)
To remove a lock, do:
zypper rl yast2-packager
Other examples:
zypper al zypper # lock package 'zypper' (exact match)
zypper al -r repo-oss virtualbox* # restrict the lock to 'repo-oss' repository (allowing installation from others)
zypper rl 3 # remove lock by number
rpm examples
# rpm -qi amarok Show details of package
# rpm -qf /usr/sbin/sshd Shows where file came from
# rpm -qR openssh-server Show dependencies - What do I need for this package to work?
# rpm --whatrequires initscripts Find reverse dependencies - What will break if I remove this package
# rpm -qip Show details of not yet installed package
# rpm --verify openssh-server Find out if any files in the package have been modified since install.
# rpm -qlv postfix list all files in a rpm
Improve the font rendering - using subpixel hinting
zypper ar -f http://download.opensuse.org/repositories/home:/muzlocker/openSUSE_11.4/ smoothfonts
zypper dup -r smoothfonts
Things to do after a fresh installation of openSUSE 11.4
This guide is a summary of the steps I take to customize a default installation of openSUSE.
This particular guide was rewritten for openSUSE 11.2, but most stuff should be applicable to other versions as well.
first: repos
first, type
# zypper lr -d
# | Alias | Name | Enabled | Refresh | Priority | Type | URI | Service
-+--------------+-----------------------+---------+---------+----------+------+-----------------------------------------------------------------+--------
1 | repo-debug | openSUSE-11.3-Debug | No | Yes | 99 | NONE | http://download.opensuse.org/debug/distribution/11.3/repo/oss/ |
2 | repo-non-oss | openSUSE-11.3-Non-Oss | Yes | Yes | 99 | NONE | http://download.opensuse.org/distribution/11.3/repo/non-oss/ |
3 | repo-oss | openSUSE-11.3-Oss | Yes | Yes | 99 | NONE | http://download.opensuse.org/distribution/11.3/repo/oss/ |
4 | repo-source | openSUSE-11.3-Source | No | Yes | 99 | NONE | http://download.opensuse.org/source/distribution/11.3/repo/oss/ |
5 | repo-update | openSUSE-11.3-Update | Yes | Yes | 99 | NONE | http://download.opensuse.org/update/11.3/ |
- delete source and debug repos and installation dvd repo
zypper rr < number of repo | name of repo | alias of repo>
- add community repos: Packman, VLC etc.
zypper ar -f http://download.videolan.org/pub/videolan/vlc/SuSE/11.2/ vlc
zypper ar -f http://ftp.skynet.be/pub/packman/suse/11.2/ packman
- add KDE 4.3 repos (for updates KDE)
zypper ar -f http://download.opensuse.org/repositories/KDE:/43/openSUSE_11.2/ kde43
zypper ar -f http://download.opensuse.org/repositories/KDE:/KDE4:/Community/openSUSE_11.2_KDE_43/ kde43community
- or better still, the updated KDE4.4 repos:
zypper ar -f http://download.opensuse.org/repositories/KDE:/KDE4:/Factory:/Desktop/openSUSE_11.2/ kde44
zypper ar -f http://download.opensuse.org/repositories/KDE:/KDE4:/Community/openSUSE_11.2/ kde44comm
zypper ar -f http://download.opensuse.org/repositories/KDE:/KDE4:/Playground/openSUSE_11.2/ kde44play
In the end you should have the following repos:
- oss
- non-oss
- update
- kde43 or kde44
- kde43community or kde44comm
- packman
- vlc
- nvidia/ATI
Kernel stuff
Install this stuff now, because sooner or later you will need them. And sometimes the install/compile of a kernel module will fail without these
zypper in -y kernel-source linux-kernel-headers kernel-syms make gcc
utils
zypper in -y mc findutils-locate nmap
For multimedia stuff:
# zypper in -y flash-player mplayer ffmpeg a52dec mencoder x264 faac w32codec-all vlc
optional:
# zypper in -y gstreamer-0_10-plugins-good xine-browser-plugin swfdec-browser-plugin gxine-browser-plugin gstreamer-0_10-plugins-bad mplayerplug-in libxine1-codecs
Language:
zypper in -y ispell-dutch myspell-dutch
If you have installed from liveCD, localization may be missing:
zypper in -y kde4-l10n-nl kde4-l10n-nl-data kde4-l10n-nl-doc
firefox:
- install add-ons: adblock, xmarks
- add 'new tab' button in buttonbar
- configuration:
- download location always ask, close when ready etc
- start with blank page
- do not remember history, suggest from bookmarks
- search for text when I start typing
- no check my spelling as I type
- no check to see if FF is default browser
- install silverlight plugin http://go-mono.com/moonlight-beta/
- type about:config in addressbar and
change:
- network.dns.disableIPv6 -> true
- create this one: content.notify.backoffcount -> 5
- also create nglayout.initialpaint.delay -> 0
- network.http.pipelining true
- network.http.proxy.pipelining true
- network.http.pipelining.maxrequests 8
KDE:
- edit /etc/sysconfig/windowmanager and change this option to 'no'
KDE_USE_IPV6="no"
- taskbar:
- add system monitor CPU usage widget
- digital clock: add day of week
- add yast2 and configure desktop to quick start area (next to suse-icon)
- configure desktop - personal settings:
- region and language: region: dutch. add dutch to languages
- advanced -> session manager: start KDE with empty session
- autostart: yakuake
- desktop screensaver: random
- desktop: add analogue clock widget
- for extra KWIN themes:
# zypper in kde4-windeco-aurorae kde4-windeco-chromi kde4-windeco-crystal kde4-windeco-dekorator kde4-windeco-nitrogen
- and go to System Settings / Appearance / Windows / choose for example the aurorae theme engine with the example theme
Yast2:
- configure NTP settings 194.109.22.18 (XS4All time server) or choose from pool.ntp.org
OOo
- User details
- quickstarter
Printer configuration
- cups printer 192.168.1.1 ++ALWAYS USE IP++
Power settings
network mounts
Repos
lap088:/home/pvdm # cat /etc/zypp/repos.d/*
[packman]
name=Packman
enabled=1
autorefresh=1
baseurl=http://packman.inode.at/suse/openSUSE_12.1
type=rpm-md
gpgcheck=1
gpgkey=http://packman.inode.at/suse/openSUSE_12.1/repodata/repomd.xml.key
keeppackages=0
[pvdm-garmin]
name=pvdm-garmin
enabled=1
autorefresh=1
baseurl=http://download.opensuse.org/repositories/Application:/Geo/openSUSE_12.1/
type=rpm-md
[pvdm-kde48-extra]
name=pvdm-kde48-extra
enabled=1
autorefresh=1
baseurl=http://pvdm.xs4all.nl/kde48extra/
type=rpm-md
keeppackages=0
[pvdm-kde48]
name=pvdm-kde48
enabled=1
autorefresh=1
baseurl=http://pvdm.xs4all.nl/kde48/
type=rpm-md
keeppackages=0
[pvdm-kernel]
name=pvdm-kernel
enabled=1
autorefresh=1
baseurl=http://pvdm.xs4all.nl/kernel/
type=rpm-md
keeppackages=0
[pvdm-nntpgrab]
name=pvdm-nntpgrab
enabled=0
autorefresh=1
baseurl=http://www.openftd.org/releases/openSUSE_12.1
type=rpm-md
keeppackages=0
[pvdm-smoothfonts]
name=pvdm-smoothfonts
enabled=1
autorefresh=1
baseurl=http://download.opensuse.org/repositories/home:/muzlocker/openSUSE_12.1/
type=rpm-md
keeppackages=0
[repo-non-oss]
name=Non-Oss
enabled=1
autorefresh=1
baseurl=http://download.opensuse.org/distribution/12.1/repo/non-oss/
path=/
type=yast2
keeppackages=0
[repo-oss]
name=Oss
enabled=1
autorefresh=1
baseurl=http://download.opensuse.org/distribution/12.1/repo/oss/
path=/
type=yast2
keeppackages=0
[Updates]
name=PvdM Updates
enabled=1
autorefresh=1
baseurl=http://pvdm.xs4all.nl/update/12.1/
path=/
type=rpm-md
keeppackages=0
Touchpad
hp.com tydelijk1 uitgebruide ww met CAPS johan(2) en cijfers
borderlinx pvdmjoomla uit cijf
Things to do after a fresh installation of openSUSE 12.1
This guide is a summary of the steps I take to customize a default installation of openSUSE.
This particular guide was rewritten for openSUSE 11.2, but most stuff should be applicable to other versions as well.
first: repos
first, type
# zypper lr -d
- delete source and debug repos and installation dvd repo
zypper rr < number of repo or name of repo or alias of repo>
- add community repo: Packman
zypper ar -f http://packman.inode.at/suse/openSUSE_12.1 packman
In the end you should have the following repos:
# zypper lr --uri
# | Alias | Name | Enabled | Refresh | URI
--+------------------------------------+------------------------------------+---------+---------+-------------------------------------------------------------
1 | Updates-for-openSUSE-12.1-12.1-1.4 | Updates for openSUSE 12.1 12.1-1.4 | Yes | Yes | http://download.opensuse.org/update/12.1/
2 | packman | Packman repository (openSUSE_12.1) | Yes | No | http://packman.inode.at/suse/openSUSE_12.1
3 | repo-non-oss | openSUSE-12.1-Non-Oss | Yes | Yes | http://download.opensuse.org/distribution/12.1/repo/non-oss/
4 | repo-oss | openSUSE-12.1-Oss | Yes | Yes | http://download.opensuse.org/distribution/12.1/repo/oss/
Kernel stuff
Install this stuff now, because sooner or later you will need them. And sometimes the install/compile of a kernel module will fail without these
zypper in -y kernel-source linux-kernel-headers kernel-syms make gcc
utils
zypper in -y mc findutils-locate nmap yakuake krusader chromium clementine vlc unetbootin p7zip krename
For multimedia stuff & codecs:
# zypper in -y flash-player flashplayer-kde4 mplayer ffmpeg a52dec mencoder x264 faac w32codec-all lame kdemultimedia4-thumbnailers
optional:
# zypper in -y gstreamer-0_10-plugins-good xine-browser-plugin swfdec-browser-plugin gxine-browser-plugin gstreamer-0_10-plugins-bad gstreamer-0_10-plugins-ugly mplayerplug-in libxine1-codecs k3b-codecs gstreamer-0_10-ffmpeg
for windows movies in webbrowser:
# zypper in gnome-mplayer gecko-mediaplayer
fonts
To install MS fonts so that LibreOffice documents looks closer to those on my colleagues' screen, execute the following (as root):
zypper in fetchmsttfonts
Language:
zypper in -y ispell-dutch myspell-dutch
If you have installed from liveCD, localization may be missing:
zypper in -y kde4-l10n-nl kde4-l10n-nl-data kde4-l10n-nl-doc
firefox:
- install add-ons: adblock, xmarks
- add 'new tab' button in buttonbar
- configuration:
- download location always ask, close when ready etc
- start with blank page
- do not remember history, suggest from bookmarks
- search for text when I start typing
- no check my spelling as I type
- no check to see if FF is default browser
- ==>install silverlight plugin http://go-mono.com/moonlight-beta/<== maybe not
- type about:config in addressbar and
change:
- network.dns.disableIPv6 -> true
- create this one: content.notify.backoffcount -> 5
- also create nglayout.initialpaint.delay -> 0
- network.http.pipelining true
- network.http.proxy.pipelining true
- network.http.pipelining.maxrequests 8
KDE:
- edit /etc/sysconfig/windowmanager and change this option to 'no'
KDE_USE_IPV6="no"
(probably already is)
- taskbar:
- add system monitor CPU usage widget
- digital clock: add day of week
- add yast2 and configure desktop to quick start area (next to suse-icon)
- configure desktop - personal settings:
- region and language: region: dutch. add dutch to languages
- advanced -> session manager: start KDE with empty session
- autostart: yakuake konversation pidgin
- desktop screensaver: random
- desktop: add analogue clock widget
- configure powermanagement
- configure kwin
- configure fonts
Yast2:
- configure NTP settings 194.109.22.18 (XS4All time server) or choose from pool.ntp.org
OOo
- User details
- quickstarter
Printer configuration
- cups printer 192.168.1.1 ++ALWAYS USE IP++
Power settings
network mounts
Radeon
- The Radeon hardware was tested with the following non-stock options:
- disabling swap buffers wait from the xorg.conf (SwapbuffersWait),
- enabling 2D color tiling (ColorTiling and ColorTiling2D in xorg.conf),
- and enabling PCI Express 2.0 support (radeon.pcie_gen2=1 as a kernel command-line parameter).
It is silly that these non-default options are still needed for the open-source driver that AMD officially supports, but that is how it stands right now.
- With the Nouveau driver the main performance-boosting item at this point is forcing the graphics card manually into its highest performance level / clock state. The Nouveau driver continues to leave the graphics core / memory / shader clocks at whatever the video BIOS to sets them at when initializing, unlike the NVIDIA binary driver that dynamically changes the performance levels based upon GPU load and other factors. Therefore, with most modern NVIDIA hardware having multiple performance levels, to get the GPU at the correct frequencies for 3D use you need to manually force them to the higher state. Meanwhile you need to hope that the NVIDIA driver properly supports re-clocking for your GPU and that once re-clocked you don't experience any rendering corruption or stability problems. Re-clocking involves loading the Nouveau DRM driver with a special command-line parameter and writing the desired performance level to a sysfs node. This information is covered in detail in Nouveau Reclocking: Buggy, But Can Boost Performance. I long for the day when the Nouveau driver properly supports re-clocking across all modern NVIDIA GPUs and can be enabled by default to be done automatically.
How to have the latest kernel in openSUSE
It is possible to have the latest kernel in openSUSE. However, there are a few thing you must consider. These will be discussed below.
We will be using the command line tool zypper to update to the latest kernel, because it is easier than YaST :D
stock kernels
OpenSUSE is installed (from DVD or wherever from) with a kernel called the 'stock' kernel. Sometimes this kernel is also referred to the GA kernel. This kernel remains the same for the whole time that that specific openSUSE version is supported, and is only updated with security issues and occasional bug fixes. This is called backporting. These updated stock-kernels appear in the update channel just as normal updates, so you should install them, just as other updates.
This is a list of the latest openSUSE versions and their stock kernels:
openSUSE version: stock-kernel
12.2 3.4.6-2.10
12.1 3.1.9 upgraded to 3.1.10 for security/bugfixes
11.4 2.6.37
kernel versions
openSUSE has the option to run other 'flavours' of the kernel. These include:
- kernel-default -> The standard kernel for both uniprocessor and multiprocessor systems.
- kernel-desktop -> This kernel is optimized for the desktop. It is configured for lower latency and has many of the features that aren't usually used on desktop machines disabled.
- kernel-pae -> this is a 32-bit only special kernel with support for 64GB memory. 64 bit kernels support this by default
- kernel-vanilla -> The standard kernel - without any SUSE patches
- kernel-xen -> The Linux kernel for Xen paravirtualization. This kernel can be used both as the domain0 ("xen0") and as an unprivileged ("xenU") kernel.
Usually, for a desktop/laptop system, you run the default or the desktop flavour.
keeping older kernel versions as fallback
It is good practice, when you enable the kernel-head repo and thus recieve the latest and greatest kernel, to keep some previous kernel(s) at hand to use as a fallback scenario. These kernels will appear in your grub menu so you will be able to choose them when booting up your machine.
Fortunately, zypper supports this with a few configuration options. It is possible for instance to instruct zypper to keep the stock kernel, the latest kernel, and the latest but one and to remove all others. That is cool, right?
The magic is in the file /etc/zypp/zypp.conf. There are
two options there:
multiversion = provides:multiversion(kernel)
multiversion.kernels = latest,oldest
The first line enables the mutiple installation of kernels simultaniously. This is not possible by default, so this option is necessary.
The second has several options:
## Comma separated list of kernel packages to keep installed in parallel, if the
## above multiversion variable is set. Packages can be specified as
## 2.6.32.12-0.7 - Exact version to keep
## latest - Keep kernel with the highest version number
## latest-N - Keep kernel with the Nth highest version number
## running - Keep the running kernel
## oldest - Keep kernel with the lowest version number (the GA kernel)
## oldest+N - Keep kernel with the Nth lowest version number
##
## Default: Do not delete any kernels if multiversion = provides:multiversion(kernel) is set
#multiversion.kernels = latest,oldest
So, if you want to keep the stock kernel and the latest kernel, use:
multiversion.kernels = latest,oldest
If you want to keep the stock kernel, the latest and the kernel before that, use:
multiversion.kernels = latest,oldest,latest-1
enabling the kernel head repository
To receive the latest kernel, you must create an additional repo to download from.
zypper ar -f http://download.opensuse.org/repositories/Kernel:/HEAD/standard/ kernel-repo
This command add a new repository (ar), enables refresh (-f), provides the URL, and a name (kernel-repo).
This repository always contains the lastest development kernel, i.e. 3.4.0-rc6-1-desktop. Do not expect to find older versions there, it is always the latest and only the latest build!
This repo is the same for all openSUSE version,
updating from the new repo
To actually download and install the new kernel, you must do a special update. This is called a distribution-upgrade. Don't worry, this won't update your entire installation! We will instruct zypper to only use updated packages from the kernel-repo we just created. A normal 'zypper up' won't replace packages from a different repo then the one it was originally installed from.
Issue the command:
zypper dup -r kernel-repo
This tells zypper to do a dist-upgrade from the kernel-repo, so only your new kernel files will be installed alongside the old ones, if you have properly configured the zypp.conf file.
check check double check
After you have completed these instructions, you can check which kernels you have installed:
rpm -qa | grep kernel
The output of that command on my system at time of this writing:
#rpm -qa | grep kernel | sort
kernel-default-devel-3.4.rc3-3.1.x86_64
kernel-default-devel-3.4.rc6-1.1.x86_64
kernel-desktop-3.4.rc3-3.1.x86_64
kernel-desktop-3.4.rc6-1.1.x86_64
kernel-desktop-devel-3.4.rc3-3.1.x86_64
kernel-desktop-devel-3.4.rc6-1.1.x86_64
kernel-devel-3.4.rc3-3.1.noarch
kernel-devel-3.4.rc6-1.1.noarch
kernel-source-3.4.rc3-3.1.noarch
kernel-source-3.4.rc6-1.1.noarch
kernel-syms-3.4.rc3-3.1.x86_64
kernel-syms-3.4.rc6-1.1.x86_64
kernel-xen-devel-3.4.rc3-3.1.x86_64
kernel-xen-devel-3.4.rc6-1.1.x86_64
As you can see, I have 2 kernels installed at the moment: 3.4.rc3 and 3.4.rc6. (The rest of the packages are necessary for other purposes, like Virtualbox.)
Fixing desktop freezes on large copies
Now this may or may not be specific to openSUSE, but here it is anyway:
I suffered from desktop lockups when copying large files, for instance from the wireless network to usb. THis was especially noticable in dolphin.
Even though I suspected it at first, now it appears that it is not dolphin that is acting up, it is the 'hugepage' option in the kernel.
So, how do we tweak it? Simpel. The following lines will do the trick as root:
echo never >/sys/kernel/mm/transparent_hugepage/defrag
echo 0 > /sys/kernel/mm/transparent_hugepage/khugepaged/defrag
-edit-
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo madvise > /sys/kernel/mm/transparent_hugepage/enabled
KDE font settings
Fonts:
- 9
- 9
- 8
- 8
- 9
- 8
- 9
- 9
3,4 & 6
How to make the screen brightness keys work again in KDE
How to make button for screen brightness work on your laptop in KDE
When I started using a newer kernel in openSUSE 13.2, I noticed the buttons for screen brightness were no longer functioning on my laptop. This is verry annoying, so I decided to do something about it. I am using KDE. I will try to write the instructions as generic as possible, so that it will hopefully work in your situation too. This is a HP ELitebook 8570p.
find the right entry
First, we have to find the screen device, which is located somewhere in the /sys/devices/pci0000:00 directory.
Somewhere in this directory is a file located with the name 'brightness'. Let's find it. So, as root:
# find /sys/devices/pci0000:00 -name "brightness"
/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card0/card0-LVDS-1/radeon_bl0/brightness
/sys/devices/pci0000:00/0000:00:1c.2/0000:24:00.1/leds/mmc0::/brightness
/sys/devices/pci0000:00/0000:00:1c.3/0000:25:00.0/leds/phy0-led/brightness
Remember, your output is probably different from what I got here.
I have a radeon card, so the first line contains the device we will be working with.
When you read the content of the 'file', you get the current brightness level:
# cat /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card0/card0-LVDS-1/radeon_bl0/brightness
235
The value lies somewhere between 0 and 255, it's a one byte value.
You can test if this work for you by writing (still as root) a different value to that file: (remember to substitute the file for your graphics card)
# echo 200 > /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card0/card0-LVDS-1/radeon_bl0/brightness
If this works, you should see the brightness change, and you can go to the next step.
edit: for samsung rv720: "echo 8 > /sys/class/backlight/samsung/brightness" to restore the brightness. edit2: newer kernel uses this: echo 100 > /sys/class/backlight/nv_backlight/brightness
create the scripts
I created a simple QAD(quick and Dirty) 3 line script to read that value and increase it.
I put the script in my home user's bin directory:
user> vi ~/bin/brp
br=$(cat /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card0/card0-LVDS-1/radeon_bl0/brightness)
br=$((br+10))
echo $br > /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card0/card0-LVDS-1/radeon_bl0/brightness
I called it 'brp' which is nice and short and stands for 'brightness plus' Note that I increase the value by 10 otherwise it would not change enough. You can vary that value of course to get finer control or get faster adjustment.
I created a similar script called brm which decreases the value:
user> vi ~/bin/brm
And paste the content
br=$(cat /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card0/card0-LVDS-1/radeon_bl0/brightness)
br=$((br-10))
echo $br > /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card0/card0-LVDS-1/radeon_bl0/brightness
# chmod +x brm brp
Now, the problem is that this file /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card0/card0-LVDS-1/radeon_bl0/brightness may only be written by root. Notice that all commands manipulating the file so far have been executed as root. But you should have created the 2 script files brp and brm as your normal user account.
To make the file world writeable:
# chmod 777 /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card0/card0-LVDS-1/radeon_bl0/brightness
This will make the 2 scripts which are executed as your useraccount able to write to this file.
configure KDE
Then, lastly, redefine the keys on your laptop for screen brightness to point to your script:
- go to KDE - configure desktop
- shortcuts and gestures
- custom shortcuts
- edit - new - global shortcut - command/URL
- name: br-down
- tab trigger: Shortcut - click on 'None'
- press the brightness down key on your keyboard. It should appear in the button.
- tab action: browse and point to your brm file (/home/$user/bin/brm)
- click apply
Repeat this for the brightness up script file, so you end up with 2 shortcuts.
And that's it. This should work. Happy screening!
configure crontab
Oh, and after a reboot, the chmod 777 of the brightness file is needed again. So I did a dirty hack and added this to my crontab:
*/3 * * * * root chmod 777 /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card0/card0-LVDS-1/radeon_bl0/brightness
Snapper
Introduction
This article assumes you will be using Snapper with the Btrfs filesystem.
During a fresh install of openSUSE, the default is to use Btrfs on root, meaning / and the filesystem XFS on /home. If you select the option to not seperate /home during openSUSE install, the default is for everything, including /home, to be under Btrfs.
If you decide to use Btrfs & Snapper (default) during a fresh openSUSE install, it will automatically configure Snapper for you. This automatic configuration of Snapper means that snapshots will be made automatically when you use YaST2 and/or zypper. Please read section Software Requirements below for caveat.
You may convert EXT3 & EXT4 filesystems to Btrfs to take advantage of Snapper. Using Snapper on EXT4 filesystem is highly discouraged.
Important Details
The default behaviour when Snapper is configured to run on root, meaning /, is to exclude every Btrfs subvolume. This the same behaviour as on SUSE Enterprise. This means that if you have the subvolume /srv Snapper will not snapshot anything in /srv unless told specifically by you to do so. This also means that if you add a subvolume to / at any point in time, it will be excluded from Snapper's default snapshot behaviour.
Always be root when using Snapper or YaST2, unless otherwise specified.
YaST2 comes with a Snapper module called yast2-snapper and may be used to check and manipulate snapshots. It does not, however, have the ability to change Snapper configurations. That must be done in the terminal.
Taking snapshots is automatically enabled if the root partition (/) is big enough (approximately more than 8GB). Please remember: taking snapshots on partitions other than / is not enabled by default.
To see what subvolumes are created under / and therefore see which directories (subvolumes) are excluded from the default snapshots behaviour:
# btrfs subvolume list /
To have Snapper create a snapshot of a subvolume, you can either do it manually one-time via the snapper program, or create a new snapper config file. More information in the tutorial.
Software Requirements
You always need this package:
snapper
If you use YaST2 to install, update or remove packages and want to have snapper automatically create snapshots when you use this tool:
yast2-snapper
If you use zypper to install, update or remove packages and want to have snapper automatically create snapshots when you use this tool:
snapper-zypp-plugin
If you want to have the ability for advanced btfs snapshot boot menu management:
grub2-snapper-plugin
WARNING: the above packages are not always installed by default. What gets installed depends on what choices you make during the openSUSE installation process. Make sure you have the appropriate (usually that means all) packages listed above installed before making changes to your system, otherwise you may be in for a surprise when snapper does not automatically create snapshots you thought it would.
Snapper Basic Usage
Snapper is not restricted to creating and managing snapshots automatically by configuration; you can also create snapshot pairs ("before and after") or single snapshots manually using either the command line tool or the YaST module.
All Snapper operations are carried out for an existing configuration. You can only take snapshots of partitions or volumes for which a configuration exists. By default the system configuration (root) is used. If you want to create or manage snapshots for your own configuration you need to explicitly choose it. Use the Current Configuration drop-down box in YaST or specify the -c on the command line (snapper -c MYCONFIG COMMAND).
List all snapshots for the default configuration (root)
snapper list
or
snapper ls
Show which files and directories have been changed between snapshots
For files/directories changed between snapshot 21 and 22:
snapper status 21..22
You can also show what files and directories have been changed from snapshot 41 going back to 39:
snapper status 41..39
The output consists of a string encoding the status followed by the filename. The characters of the status string are:
- "+" means the file was created
- "-" means the file was deleted
- "c" means the content of the file has changed
- "t" means the type of the file has changed (e.g. from regular file to directory)
- "p" means the permissions are have changed
- "u" means the user ownership has changed
- "g" means the group ownership has changed
- "x" means the extended attribute information has changed
- "a" means the ACL information has changed
- "." means no change
Show the diff (difference in actual files) between snapshots
For diff between snapshot 71 and 72:
snapper diff 71..72
You can also use this command to show the difference between a specific file. For example to show the diff from snapshot 71 to 72 only for file /etc/zypp/zypp.conf you would do the following:
snapper diff 71..72 /etc/zypp/zypp.conf
Cleanup Algorithms
Unless you have a good reason to do otherwise, you should always specify the cleanup algorithm when creating a snapshot, otherwise the snapshot will never be deleted unless you do it manually. You do this by adding the following to your snapper commands:
--cleanup-algorithm <number|timeline|empty-pre-post>
The following commands assume you will be creating snapshots on the default system configuration (root). As mentioned above, if you want to use the non-default configuration, add the following the the snapshot commands:
-c MYCONFIG
Create a snapshot of the type pre and prints the snapshot number. First command needed to create a pair of snapshots used to save a "before" and "after" state.
snapper create --type pre --print-number --description "Before the Apache config cleanup" --cleanup-algorithm number
Create a snapshot of the type post paired with the pre snapshot number 30. Second command needed to create a pair of snapshots used to save a "before" and "after" state.
snapper create --type post--pre-number 30 --description "After the Apache config cleanup" --cleanup-algorithm number
Creates a stand-alone snapshot (type single) for the default (root) configuration with a description. Because no cleanup-algorithm is specified, the snapshot will never be deleted automatically.
snapper create --description "Snapshot for week 2 2014"
Deleting Snapshots
Delete snapshot 65 for the default (root) configuration:
snapper delete 65
Snapper Tutorial
First let us check how YaST has configured snapper:
# snapper list-configs
Config | Subvolume
-------+----------
root | /
As you can see YaST has created a snapper config called "root" for your root file system. You can see what snapshots exist:
# snapper list
Type | # | Pre # | Date | Cleanup | Description | Userdata
-------+---+-------+------------------------------+----------+-------------+---------
single | 0 | | | | current |
single | 1 | | Tue 22 Nov 2011 10:30:02 CET | timeline | timeline |
Snapshot #0 always refers to the current system. There might already be several other snapshots depending on the uptime of your system and on whether you already used YaST or zypper.
Now we want to try snapper as a undo tool for YaST. First we run YaST:
# yast2 system_settings
Within YaST enable the SysReq. After you have finished YaST you see two new snapshots:
# snapper list
Type | # | Pre # | Date | Cleanup | Description | Userdata
-------+---+-------+------------------------------+----------+----------------------+---------
single | 0 | | | | current |
single | 1 | | Tue 22 Nov 2011 10:30:02 CET | timeline | timeline |
pre | 2 | | Tue 22 Nov 2011 10:41:28 CET | number | yast system_settings |
post | 3 | 2 | Tue 22 Nov 2011 10:41:49 CET | number | |
Types of Snapshots
It's time to explain the type of snapshots. Snapper creates a snapshot before and after YaST runs, these snapshots are called pre and post respectively. The post snapshots knows which pre snapshots belongs to it. By having a pre and post snapshot we can see what changes happened to the file system while YaST was running. Single snapshots have no special relationship to other snapshots.
Seeing What Has Changed (YaST)
Using snapper, it is easy to see what has changed while YaST was running. To do so you have to pass the number of the pre and post snapshot:
# snapper status 2..3
c... /etc/sysctl.conf
The 'c' means that the content of the file has changed.
We can also see the diff of the file:
# snapper diff 2..3
--- /.snapshots/2/snapshot/etc/sysctl.conf 2011-11-22 10:35:43.355493753 +0100
+++ /.snapshots/3/snapshot/etc/sysctl.conf 2011-11-22 10:41:47.019512185 +0100
@@ -17,7 +17,7 @@
# See sysctl.conf(5) and sysctl(8) for more information
#
####
-kernel.sysrq = 0
+kernel.sysrq = 1
net.ipv4.ip_forward = 0
net.ipv4.tcp_syncookies = 1
net.ipv6.conf.all.forwarding = 0
So, if you don't like the change done by YaST and want to revert it call:
# snapper undochange 2..3
create:0 modify:1 delete:0
undoing change...
undoing change done
But note that snapper does not tell the kernel about the change like YaST did so you must either do so yourself or reboot.
Adding /home To Snapper
During installation YaST does not setup a snapper config for /home. We can do so manually:
# snapper -c home create-config /home
Whenever you want to use snapper for /home you must provide the option -c home.
Now you can see what files have changed since the last hourly snapshot:
# snapper -c home list
Type | # | Pre # | Date | Cleanup | Description | Userdata
-------+---+-------+------------------------------+----------+-------------+---------
single | 0 | | | | current |
single | 1 | | Tue 22 Nov 2011 11:30:01 CET | timeline | timeline |
# snapper -c home status 1..0
comparing snapshots... done
+... /home/tux/just-married.jpg
The '+' sign means that the file is new.
Manually Creating A Snapshot
If you manually want to create a snapshot use:
# snapper -c home create --description "before the big cleanup"
YaST Snapper GUI
Finally yast2-snapper provides a YaST UI for snapper.
Troubleshooting
Logs
Snapper logs can be found in /var/log/snapper.log, check this file if you are having issues as it may contain useful troubleshooting information.
Snapper Videos
Greg Kroah-Hartman & SUSE Linux Enterprise Product Manager Demo Snapper (~7min)
Snapper, Btrfs & LVM Presentation (22min)
Ansible
Snapper PvdM
Show configs:
# snapper list-configs
Create snapshot:
# snapper -c home create --description "/home snapshot"
View snapshots:
# snapper -c home ls
delete snapper config
# snapper -c home delete-config
If that does not work:
- remove /home from fstab
- reboot and log in as root
cd {vol}/.snapshots (b.v. /home/.snapshots)# for i in $(ls -1); do btrfs property set -ts $i/snapshot/ ro false; done# rm -rf *# ..# rmdir .snapshots
Kde over ssh
$ export XDG_CURRENT_DESKTOP=kde
$ dolphin
Change root's theme
$ pkexec env "DISPLAY=$DISPLAY" "XAUTHORITY=$XAUTHORITY" "QT_QPA_PLATFORMTHEME=kde" systemsettings
then change theme as normal.
Upgrade using patch
Using patch
A small patch file is usually made available for a minor version upgrade. You'll need to download patch to use this Manually download and extract the patch file from the dumps site or follow the directions with wget below. Patches are incremental, you can not skip a version.
- cd to your main MediaWiki directory (the one with LocalSettings.php)
- Download the patch file and unzip it.
- Use
patch -p1 --dry-runto check what will be changed (e.g.,patch -p1 --dry-run -imediawiki-x.xx.x.patch)
- If all is well, run patch again without
--dry-run
- Check your Special:Version and you should see the new version number in place.
KDE apps look ugly and missing icons over ssh
Re: Qt5 apps look ugly over SSH X forwarding
Sat May 06, 2017 8:10 am
In the remote SSH session:
Code: Select all
export XDG_CURRENT_DESKTOP=kde
Things to do after a fresh installation of OpenSUSE
This guide is a summary of the steps I take to customize a default installation of openSUSE.
This particular guide was rewritten for openSUSE 11.2, but most stuff should be applicable to other versions as well.
first: repos
first, type
# zypper lr -d
# | Alias | Name | Enabled | Refresh | Priority | Type | URI | Service
-+--------------+-----------------------+---------+---------+----------+------+-----------------------------------------------------------------+--------
1 | repo-debug | openSUSE-11.3-Debug | No | Yes | 99 | NONE | http://download.opensuse.org/debug/distribution/11.3/repo/oss/ |
2 | repo-non-oss | openSUSE-11.3-Non-Oss | Yes | Yes | 99 | NONE | http://download.opensuse.org/distribution/11.3/repo/non-oss/ |
3 | repo-oss | openSUSE-11.3-Oss | Yes | Yes | 99 | NONE | http://download.opensuse.org/distribution/11.3/repo/oss/ |
4 | repo-source | openSUSE-11.3-Source | No | Yes | 99 | NONE | http://download.opensuse.org/source/distribution/11.3/repo/oss/ |
5 | repo-update | openSUSE-11.3-Update | Yes | Yes | 99 | NONE | http://download.opensuse.org/update/11.3/ |
- delete source and debug repos and installation dvd repo
zypper rr < number of repo | name of repo | alias of repo>
- add community repos: Packman, VLC etc.
zypper ar -f http://download.videolan.org/pub/videolan/vlc/SuSE/11.2/ vlc
zypper ar -f http://ftp.skynet.be/pub/packman/suse/11.2/ packman
- add KDE 4.3 repos (for updates KDE)
zypper ar -f http://download.opensuse.org/repositories/KDE:/43/openSUSE_11.2/ kde43
zypper ar -f http://download.opensuse.org/repositories/KDE:/KDE4:/Community/openSUSE_11.2_KDE_43/ kde43community
- or better still, the updated KDE4.4 repos:
zypper ar -f http://download.opensuse.org/repositories/KDE:/KDE4:/Factory:/Desktop/openSUSE_11.2/ kde44
zypper ar -f http://download.opensuse.org/repositories/KDE:/KDE4:/Community/openSUSE_11.2/ kde44comm
zypper ar -f http://download.opensuse.org/repositories/KDE:/KDE4:/Playground/openSUSE_11.2/ kde44play
In the end you should have the following repos:
- oss
- non-oss
- update
- kde43 or kde44
- kde43community or kde44comm
- packman
- vlc
- nvidia/ATI
Kernel stuff
Install this stuff now, because sooner or later you will need them. And sometimes the install/compile of a kernel module will fail without these
zypper in -y kernel-source linux-kernel-headers kernel-syms make gcc
utils
zypper in -y mc findutils-locate nmap
For multimedia stuff:
# zypper in -y flash-player mplayer ffmpeg a52dec mencoder x264 faac w32codec-all vlc
optional:
# zypper in -y gstreamer-0_10-plugins-good xine-browser-plugin swfdec-browser-plugin gxine-browser-plugin gstreamer-0_10-plugins-bad mplayerplug-in libxine1-codecs
Language:
zypper in -y ispell-dutch myspell-dutch
If you have installed from liveCD, localization may be missing:
zypper in -y kde4-l10n-nl kde4-l10n-nl-data kde4-l10n-nl-doc
firefox:
- install add-ons: adblock, xmarks
- add 'new tab' button in buttonbar
- configuration:
- download location always ask, close when ready etc
- start with blank page
- do not remember history, suggest from bookmarks
- search for text when I start typing
- no check my spelling as I type
- no check to see if FF is default browser
- install silverlight plugin http://go-mono.com/moonlight-beta/
- type about:config in addressbar and
change:
- network.dns.disableIPv6 -> true
- create this one: content.notify.backoffcount -> 5
- also create nglayout.initialpaint.delay -> 0
- network.http.pipelining true
- network.http.proxy.pipelining true
- network.http.pipelining.maxrequests 8
KDE:
- edit /etc/sysconfig/windowmanager and change this option to 'no'
KDE_USE_IPV6="no"
- taskbar:
- add system monitor CPU usage widget
- digital clock: add day of week
- add yast2 and configure desktop to quick start area (next to suse-icon)
- configure desktop - personal settings:
- region and language: region: dutch. add dutch to languages
- advanced -> session manager: start KDE with empty session
- autostart: yakuake
- desktop screensaver: random
- desktop: add analogue clock widget
- for extra KWIN themes:
# zypper in kde4-windeco-aurorae kde4-windeco-chromi kde4-windeco-crystal kde4-windeco-dekorator kde4-windeco-nitrogen
- and go to System Settings / Appearance / Windows / choose for example the aurorae theme engine with the example theme
Yast2:
- configure NTP settings 194.109.22.18 (XS4All time server) or choose from pool.ntp.org
OOo
- User details
- quickstarter
Printer configuration
- cups printer 192.168.1.1 ++ALWAYS USE IP++
Power settings
network mounts
Updating OpenSUSE in-place using zypper dup
What Why When How
- If you want to upgrade your OpenSUSE while the system is running, you can use 'zypper dup' with these simple 5 steps.
- After the reboot, the system will be upgraded to the next version.
- We will be using the command line tool, because it is cool.
- This guide can be used with all versions from 11.1 and newer.
- The examples given here are from the upgrade of 11.1 to 11.2
- A drawback of this method is that your disk will not be converted to use the new ext4 filesystem. For this, do a fresh/clean install
1. Update the system first
Update your current running system with the latest patches. This will ensure that the update process will function correctly and no bugs exist in the rpm/zypper stack. If your system is already patched, continue with the next step If you haven't done so, enable an update repository and bring your system up-2-date.
# zypper addrepo --check --name 'openSUSE-11.1-Update' http://download.opensuse.org/update/11.1/ repo-update
# zypper ref -f && zypper up
After the update a reboot may be required. Make sure this step is successful before proceeding!
2. Delete non standard repos
In this step we need to disable all non-standard OpenSUSE repositories, leaving only the OSS and NON-OSS and an update channel.
# zypper lr -d
Here you will see the repos and their URLs. remove *ALL* the URLS that are not the stanard repos, so remove PackMan, VLC, buildservice repos, google repos, KDE repos, etc etc....
# zypper rr
replace the number with the number displayed in the first column of the 'zypper lr -d' command In the end you will have just 3 repos: update, OSS and NONOSS.
3. Edit the repos with the new location
Now we will bring the 3 repo's URLs to the desired new version.
# cd /etc/zypp/repos.d/
use vi or your favourite editor to edit the 3 files there.
Modify the line with 'baseurl' to use the new location, so change the 11.1 into 11.2. While you're there, you can also modify the line with 'name' and maybe the first line between the brackets.
When you're done, you should have 3 files representing the 3 new repos.
4. Update the zypper program itself first
Enter the following commands:
# zypper ref -f
# zypper in zypper
5. Do the actual upgrade
We will download all packages locally first, to make sure the upgrade goes smoothly and uninterrupted.
Make sure you have enough space in /var !! Check with
# df -h
and see if the free space on / (or /var) is more then the next command states at the bottom summary, before you give the final go:
# zypper dup -d
Then start the upgrade:
# zypper dup
After this, you can add the repos you had before, like Packman etc. Make sure you add the repos for the new version. Then, do another 'zypper dup', use dup because packages may require a vendor change.
Repositories in openSUSE - The current state
# | Alias | Name | Enabled | Refresh | Priority | Type | URI
---+-----------+-----------+---------+---------+----------+--------+-----------------------------------------------------------------------------------
1 | OSS | OSS | Yes | Yes | 99 | yast2 | http://download.opensuse.org/distribution/11.2/repo/oss/
2 | VLC | VLC | Yes | Yes | 99 | rpm-md | http://download.videolan.org/pub/videolan/vlc/SuSE/11.2/
3 | Wine | Wine | Yes | Yes | 99 | rpm-md | http://download.opensuse.org/repositories/Emulators:/Wine/openSUSE_11.2/
4 | ati | ati | Yes | Yes | 99 | rpm-md | http://www2.ati.com/suse/11.2/
5 | faccont | FacCont | Yes | Yes | 99 | rpm-md | http://download.opensuse.org/repositories/openSUSE:Factory:Contrib/standard
6 | moz | moz | Yes | Yes | 99 | rpm-md | http://download.opensuse.org/repositories/mozilla/openSUSE_11.2/
7 | nonoss | NonOSS | Yes | Yes | 99 | yast2 | http://download.opensuse.org/distribution/11.2/repo/non-oss/
8 | ooounst | ooounst | Yes | Yes | 99 | rpm-md | http://download.opensuse.org/repositories/OpenOffice.org:/UNSTABLE/openSUSE_11.2/
9 | openftd | openftd | Yes | Yes | 99 | rpm-md | http://www.openftd.org/releases/testing/openSUSE_11.2
10 | p-kde44 | p-kde44 | Yes | Yes | 98 | rpm-md | http://pvdm.xs4all.nl/kde44/
11 | p-kdecomm | p-kdecomm | Yes | Yes | 99 | rpm-md | http://pvdm.xs4all.nl/kde44community
12 | p-kdeplay | p-kdeplay | Yes | Yes | 99 | rpm-md | http://pvdm.xs4all.nl/kde44playground
13 | p-oss | p-oss | Yes | Yes | 99 | yast2 | http://pvdm.xs4all.nl/opensuse112_64/
14 | p-up | p-up | Yes | Yes | 99 | rpm-md | http://pvdm.xs4all.nl/update/11.2/
15 | packman | Packman | Yes | Yes | 99 | rpm-md | http://ftp.skynet.be/pub/packman/suse/11.2/
Software regelmatig te checken
- ampache
- gallery
- mediawiki
Upgrading the system to a newer version using zypper dup
Warning: this procedure only works on openSUSE 11.1+
This procedure I have written is based on the official openSUSE wiki. I have made it more compact and readable.
As root:
1. check that you have an update repo, that is is enabled, and update the system using
#zypper up
2. disable all current repos using
#zypper mr --all --disable
3. add the new repos, for 11.3 the commands are:
zypper addrepo --name "openSUSE-11.3 OSS" http://download.opensuse.org/distribution/11.3/repo/oss/ repo-11.3-oss
zypper addrepo --name "openSUSE-11.3 Non-OSS" http://download.opensuse.org/distribution/11.3/repo/non-oss/ repo-11.3-non-oss
zypper addrepo --name "openSUSE-11.3 Updates" http://download.opensuse.org/update/11.3/ repo-11.3-update
4. add 3rd party repos you had before, like packman, but be careful not to add conflicting repos. Check they are the 11.3 version!
5. perform a repo refresh using:
# zypper ref -f
6. do the actual upgrade, by downloading all the packages first and then installing (this is safer):
# zypper dup --download "in-advance"
- Be sure to check the 'packages to downgrade' and 'packages to remove' part of the list.
6a. I noticed, and this is not in the official wiki, that the last commandline did not do the actual install, it did only the download. So you have to run
# zypper dup
7. afterwards you can review all the repos (using # yast2 repositories) and remove the ones from the old version we disabled in step 2.
8. add any repo you miss here and you're done!