Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I know my way around Ubuntu, but Suse is new to me. At work I've been given a task that requires me to install software, pdftk specifically, on our remote servers.

Googling around led me to look for zypper as a way to do it, but for some reason I can't seem to find zypper on these machines. Is it because I'm not logging in as root? (I did look in /sbin and /usr/sbin and zypper doesn't appear to be there).

Also, I found an autoinstall.xml file on our internal web server. Would it be of any use, or is it just something that was probably used when the long-gone linux admin set these boxes up to begin with?

What is the recommended way to install?

share|improve this question
Are you sure this is SLES and not OpenSuSE? – Nils Jun 10 '12 at 19:43
up vote 4 down vote accepted

Zypper hides in /usr/bin. If pdftk is in one of the configured repositories:

zypper in pdftk

will install the package. If it isn't, then you have a couple of options.

Option 1: Skip Zypper entirely
Get an RPM of the package, and install it with rpm, not zypper.

Option 2: Create a YUM repository
The more robust method, as it would allow the same package to be installed on all servers. Create the repository, add it to each of the servers, and then zypper's auto-update process will do the rest. Automatically (presuming you have auto-update turned on).

The hard part is picking your update server. Once you've identified which server will function in this role, figure out if you want to serve the updates over HTTP, NFS, or FTP.

Creating the repo. A good guide can be found here:
Ignore the bits about "smt-setup-custom-repo", you're just interested in the 'createrepo' parts.

Once you have a directory, drop your RPMs in there. Share it how you need to (I like NFS, it's simple and fast). Then on each server run the following

zypper sa updateserver:/path/to/repo "Name of Repo"

That'll add the repository to Zypper. Then you can just issue

zypper in pdktk

on each to install. If you have auto-updates turned on, you can auto-update your packages just by updating them in the repository. They'll apply to your servers as they auto-update.

share|improve this answer
Thanks a lot for your help, however it's not in /usr/bin either! How could that be? Also, is there a way to determine which repositories are currently configured from the command line? – user7655 Aug 5 '10 at 21:19
That's very odd. The 'rug' command is what was in use before zypper, that might still be around. Very similar command-line options, but a lot slower. – sysadmin1138 Aug 5 '10 at 21:21
@sysadmin1138 rug uses mono and .net - it can also not use more than one CPU. I got rid of zmd and all related stuff and am using solely zypper. In SLES11 they removed the zmd-stuff... – Nils Jun 10 '12 at 19:45

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.