i have emacs at home and at work. How to synchronize them if i add new package?
I'd use a git/cvs/subversion/etc. repository, and simply use the version control system to allow you to update the files/directories for both places.
There's an answer to a question as to using bazaar in just this way. That answer does a great job of explaining the directory structure to use such that it's clear where all the packages and initialization files go.
As far as how/where to store the repository, I don't know the best answer for that. If you're often connecting to work (through a VPN or somesuch), then I'd recommend hosting the repository at work. If not, then you could use sourceforge.net or some other similar site - but you'd then be exposing everything to the world... Perhaps this part of the question is best asked on serverfault.com.
how to share .emacs? It should be almost the same except paths to packages. Is it possible to split .emacs to two separate files. First with paths, second with settings which are similar for different systems?
Alternatively you could install Dropbox and put your emacs configuration in the Dropbox directory. It would be the same idea as for SyncFirefoxBookmarks. Your .emacs
would just refer to the files in the dropbox directory.
On Linux you could have it even a little easier, you would just copy your ~/.emacs.d
to the dropbox directory and create a link instead. Than you could skip .emacs
and just use ~/.emacs.d/init.el
(see Emacs Manual - Init File).