You are not logged in.

#1 2008-12-10 16:16:04

jgb
Member
Registered: 2008-12-10
Posts: 3

mixing repositories, missing libkr5.so.22, and pacman/arch design

Hi,

After installing samba I experienced a missing library problem similar to the one described in this post:
http://bbs.archlinux.org/viewtopic.php?id=52214

In my case, the failure which brought the problem to my attention was the sudden termination of sshd.

User floke responds in the thread linked above, advising to not mix repositories, and providing a link to his own experience with the subject:
http://bbs.archlinux.org/viewtopic.php?id=52030

In my own case re-installing openssh using:

pacman -R openssh
pacman -S openssh

seems to have fixed the problem.

Assuming user floke has correctly diagnosed the cause of the problem, my question is: what exactly is meant by mixing repositories?

For which types of configuration (in pacman.conf and mirrorlist) shall a system's repositories be considered "mixed" or "not mixed"?

I searched on the wiki:

Arch Wiki: The Arch Linux Repositories
http://wiki.archlinux.org/index.php/The … positories

I also searched the forum and found this:

Mirror Sync Lag
http://bbs.archlinux.org/viewtopic.php?id=34935

Is it possible that floke meant "don't mix mirrors"?

What I am trying to discover here, is how the designer(s) of Arch envision having pacman configured, in order to avoid (or minimise) the missing library/broken dependency-type problems.

In the first thread which I linked to, at the bottom, there is this link, regarding the missing library problem:
http://www.archlinux.org/static/newslet … ontributed

Allan's article clarifies things somewhat. It seems that the version of samba I installed, depended on a newer version of the library, libkrb5.so, than the one I had installed, but my openssh relied on the older version. The openssh package in the repository (same repo as samba I assume) had been updated to depend on the newer version of libkrb5.so. So, the repository itself, is internally consistent.

Sorry if this seems a bit elementary, but, I would really like to make sure that I get how pacman is working.

If my description so far is correct, I am still left with a few questions:

1) Why didn't pacman catch this? I have a feeling this is a design decision, but I need some help pinpointing the rationale. As an alternative, I imagine pacman prompting me to continue, warning that if I want to install samba without breaking dependencies, I will also have to upgrade openssh and all other outdated packages which rely on libkr5.so. This option seems preferable to breaking my sshd, but maybe the problem is that those other packages which rely on libkr5.so, themselves are relied on by certain other packages, and so on, thus turning an install of samba into essentially a system-wide upgrade?

A second option would be to tell me that I could only install a version of samba which still depended on the version of libkrb5.so which I currently had installed. As far as this option goes, it's easy for me to see how it would be contrary to Arch's design principles. Maintaining multiple versions of a package in a single repository would increase the complexity of the repository maintainers' job by at least an order of magnitude. But why not the first option? I know dependency resolution is a well-worn topic so if my question is overlooking a basic principle in that area, please pardon my ignorance.

2) Allan's article discusses fixing the problem---but how can it be avoided in the first place? Is my best option, and the one Arch is designed with in mind, to run pacman -Syu, on a tight periodic basis, and especially before installing new packages?

Thanks in advance for any help understanding these design choices.

jgb

Offline

#2 2008-12-10 16:41:24

phrakture
Arch Overlord
From: behind you
Registered: 2003-10-29
Posts: 7,879
Website

Re: mixing repositories, missing libkr5.so.22, and pacman/arch design

What did you do in the first place to cause this?

This could be a simple matter of something in extra being built against testing...

Offline

#3 2008-12-10 17:24:41

jgb
Member
Registered: 2008-12-10
Posts: 3

Re: mixing repositories, missing libkr5.so.22, and pacman/arch design

It figures it would be something simple after I go on that tangent smile

The problem showed up shortly after I did pacman -Sy samba.

My PuTTY session was mysteriously terminated with what seemed to be no intervention on my part, and upon trying to reconnect I was given messages saying the server had terminated the connection, before login prompt.

At first I thought it was due to using GNU Screen in conjunction with ssh, as I had read of some difficulties concerning environment variables.

However when I logged in to the machine directly I found that trying /etc/rc.d/sshd restart resulted in an error saying libkr5.so.22 was missing.

I had enabled [community] in pacman.conf, using instructions from http://wiki.archlinux.org/index.php/AUR_User_Guidelines however I did not change the order of the repository entries. As far as I can tell I installed nothing else which depended on kerberos.

From the sound of it, things in extra being built against testing is a fairly regular occurrence.

How is this usually compensated for?

jgb

Offline

#4 2008-12-11 00:33:20

Allan
Pacman
From: Brisbane, AU
Registered: 2007-06-09
Posts: 11,404
Website

Re: mixing repositories, missing libkr5.so.22, and pacman/arch design

libkrb5.so.22 tells me that you have outdated package on your system.  You need to a complete update (pacman -Syu).  Otherwise you will have some packages that are built against a new version of libkr5 and some built against the old version. 

Samba has a versioned dependancy, i.e. it tells pacman it needs the newer version of heimdal.  When you installed it, heimdal would have been upgraded but other packages that were rebuilt against the new heimdal would not have been. 

So this has nothing to do with mixing repositories.

Offline

Board footer

Powered by FluxBB