How to copy my system to another computer?

Fist I installed openSUSE 11.0 on my nc6000 notebook computer. I’m using it for some time already and I’m very satisfied with it.
Now I would like to setup the same system on my dc7100 desktop computer.

Current situation on desktop computer:
OpenSUSE 11.0 is installed
Wireles is configuerd and functions properly
I copied /home from the notebook-PC to desktop-PC

The computers are now almost identical. Except, not all applications are installed on desktop-PC which are installed on notebook-PC. Is there an easy way to make this also identical?
For example, I would like to get a list of installed application from the notebook-PC and give that list to desktop-PC and let YAST install it.

Thanks in advance.


Making lists and using them for a new task is typical something for the CLI and thus not for YaST wich is a GUI.

Study the man page of *zypper. *It will teach you how to make a list of what is iinstalled on a system. Once you have the list you can use *zypper *again to install on the other system.

Of course you are not going to install what is allready there. So the lists of both systems must be compared. Nice opportunity to try some CLI commands like *sort *and diff.

Thank you Henk, this is exactly what I was looking for.

I’m using the following command to get the list of the installed packages:

zypper search -is > packages.lst

The list is already sorted and with tkdiff I can easily see the differences, which are significant. Also, I can extract the difference between the systems using tkdiff.
However, I don’t see an easy way to feed such a list back to zypper. I’m thinking of writing a Perl script that generates CLI commands for me.

zypper in packagename1.arch1=version1 
zypper in packagename2.arch2=version2
zypper in packagename3.arch3=version3

Please let me know if there is an easier way to do this.


The ‘easier’ solution depends much on the lenth and contents of the list and your personal knowledge in script languages. I, for myself, would not use perl for lack of fluency in it. I would write a shell script (for bash or ksh).

May be even in this case, I would gather the list in a text file (by redirecting the output of the diff tool) and then simply edit with vi. It is rather easy when you have a package name on each line to add at the beginning of each line 'zypper in '.

Even a combination of techniques might be used by me. It all depends on how the list looks like. It is a one time solution, so no need for a repeatable, documented script.

Thanks for the suggestions. Unfortunately I’m not skilled in bash or ksh.

You are right Perl may be an overkill for such a (probably) one time action.
I’ll see what I can do with copy/paste in nedit.

The easier solution is to open YaST, Software Management, and click File (on top left), export save as a file and import that the samy way but on the other PC. And it will install/delete all the software as it is on Your first PC.

Hm, never thought about that. Sounds rigorous but effective.

I guess it’s somehow used for autoyast.