fatal error: systemd/sd-daemon.h: No such file or directory

hi all
i want install multipath-tools-0.5.0 from source, but i got this error:
fatal error: systemd/sd-daemon.h: No such file or directory

i find /usr/share/doc/packages/systemd/sd-daemon.h
does anybody have solution for this?
my os version is:openSUSE 12.1 (i586)
VERSION = 12.1
CODENAME = Asparagus

Is that in your PATH? If not ( I don’t believe it is normally ) Link it to a directory that is.

12.1 has been discontinued since 2013.

You might have better luck if you grab the source rpm from factory and try to rebuild it;


wget http://download.opensuse.org/source/factory/repo/oss/suse/src/multipath-tools-0.5.0-17.1.src.rpm
rpmbuild --rebuild multipath-tools-0.5.0-17.1.src.rpm

The end result will be in your users rpmbuild directory if you build it as a normal user. It’ll also tell you what dependencies it needs.

thank for your reply.

Server-CRM-Redirect:/lad # rpmbuild --rebuild multipath-tools-0.5.0-17.1.src.rpm
Installing multipath-tools-0.5.0-17.1.src.rpm
error: Failed build dependencies:
        systemd-devel is needed by multipath-tools-0.5.0-17.1.i586

if i install systemd-devel from yast, i got this error:

nothing provides libtinfo.so.5 needed by util-linux-2.21.2-4.5.1.i586 

and i can’t find libtinfo.so package.
and this code doesn’t help me:


cd /lib
ln -s libncurses.so.5.8 libtinfo.so.5

i never edit /etc/environment, can send me the right code for PATH

You should not randomly symlink libraries. libtinfo.so.5 is provided by the libncurses5 package.

Let’s start breaking this down and ask a few questions;

  • What does the system do? What is the purpose of the server?
  • Why are you running 12.1?
  • Did you run zypper ref before you tried installing the packages?

Then can you post the result of;
zypper lr -d

and wrap it in code tags (# in the toolbar in the editor)

PATH is an environment variable. You can see what is is with $PATH but What you want to do is link the file to a location the is on the path. For more info look at the man file


man ln

Or you could simply copy the file to a better loactaion

Since you are using generic code there are probably some differences in the location different Linux distro put things. you need to adjust to openSUSE

This is about the C compiler not finding an include file ( systemd/sd-daemon.h).
The PATH does not matter at all here.

And for libraries the PATH does not matter either.

That said, systemd/sd-daemon.h is contained in the package systemd-devel.
Why you get an error about util-linux when trying to install that I don’t know.
But you cannot fix package dependencies by creating a symlink.

Maybe your repo list will give a clue.

1.i install nginx mysql on this server and have 2 site on it, my storage is full and now we add qlogic fiber channel.
we add 500Gb storage in SAN but in server shows 2 disk:


Server-CRM-Redirect:/ # fdisk -l

Disk /dev/sda: 293.6 GB, 293564211200 bytes
255 heads, 63 sectors/track, 35690 cylinders, total 573367600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0a750a75

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      401407      199680   83  Linux
/dev/sda2          401408    12980223     6289408   82  Linux swap / Solaris
/dev/sda3        12980224   573366271   280193024   83  Linux

Disk /dev/sdc: 500.0 GB, 499999965184 bytes
255 heads, 63 sectors/track, 60788 cylinders, total 976562432 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 1048576 bytes
Disk identifier: 0x00000000

Disk /dev/sdc doesn't contain a valid partition table

Disk /dev/sdb: 500.0 GB, 499999965184 bytes
255 heads, 63 sectors/track, 60788 cylinders, total 976562432 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 1048576 bytes
Disk identifier: 0x00000000

Disk /dev/sdb doesn't contain a valid partition table
Server-CRM-Redirect:/ #

multipathd service doesn’t start, i see this topic and i want install it from source.

2.we use 12.1 because never try to update :expressionless:
3.i never use zypper


Server-CRM-Redirect:/ # zypper lr -d
#  | Alias                              | Name                               | Enabled | Refresh | Priority | Type   | URI                                                                                 | Service
---+------------------------------------+------------------------------------+---------+---------+----------+--------+-------------------------------------------------------------------------------------+--------
 1 | Updates-for-openSUSE-12.1-12.1-1.4 | Updates for openSUSE 12.1 12.1-1.4 | Yes     | Yes     |   99     | rpm-md | http://download.opensuse.org/update/12.1/                                           |
 2 | hamradio                           | hamradio                           | Yes     | Yes     |   99     | rpm-md | http://download.opensuse.org/repositories/hamradio/openSUSE_12.1/                   |
 3 | home:aevseev                       | home:aevseev                       | Yes     | Yes     |   99     | rpm-md | http://download.opensuse.org/repositories/home:/aevseev/openSUSE_12.1/              |
 4 | home:mkubecek:firebird25           | home:mkubecek:firebird25           | Yes     | Yes     |   99     | rpm-md | http://download.opensuse.org/repositories/home:/mkubecek:/firebird25/openSUSE_12.2/ |
 5 | home:mkubecek:private              | home:mkubecek:private              | Yes     | Yes     |   99     | rpm-md | http://download.opensuse.org/repositories/home:/mkubecek:/private/openSUSE_12.2/    |
 6 | network_utilities                  | Network Utilities (openSUSE_12.2)  | Yes     | No      |   99     | rpm-md | http://download.opensuse.org/repositories/network:/utilities/openSUSE_12.2/         |
 7 | openSUSE-12.1-12.1-1.4             | openSUSE-12.1-12.1-1.4             | Yes     | No      |   99     | yast2  | cd:///?devices=/dev/disk/by-id/ata-hp_DVD_A_DS8A8SH_7CDED012N1S4O2,/dev/sr0         |
 8 | openSUSE:12.2:Update               | openSUSE:12.2:Update               | Yes     | Yes     |   99     | rpm-md | http://download.opensuse.org/update/12.2/                                           |
 9 | repo-debug                         | openSUSE-12.1-Debug                | No      | Yes     |   99     | NONE   | http://download.opensuse.org/debug/distribution/12.1/repo/oss/                      |
10 | repo-debug-update                  | openSUSE-12.1-Update-Debug         | No      | Yes     |   99     | NONE   | http://download.opensuse.org/debug/update/12.1/                                     |
11 | repo-non-oss                       | openSUSE-12.1-Non-Oss              | Yes     | Yes     |   99     | yast2  | http://download.opensuse.org/distribution/12.1/repo/non-oss/                        |
12 | repo-oss                           | openSUSE-12.1-Oss                  | Yes     | Yes     |   99     | yast2  | http://download.opensuse.org/distribution/12.1/repo/oss/                            |
13 | repo-source                        | openSUSE-12.1-Source               | No      | Yes     |   99     | NONE   | http://download.opensuse.org/source/distribution/12.1/repo/oss/                     |
Server-CRM-Redirect:/ #

sorry for my poor language

Why do you have all those 12.2 repos?
They probably are the cause of your problem (the 12.2 updates repo in particular).

Most of those repos do not even exist any more.

But you should never use the update repo in a different openSUSE version than it’s intended for.
So, the best thing would be to either remove those, or upgrade (although in this case I would definitely not recommend 12.2, rather a supported version like 12.3 or 13.1)…

Like Wolfi already pointed out - you should remove the 12.2 repos and use only those designed for the distribution version or you’ll run into dependency errors.

If you remove them, you should be able to install the required dependencies and compile it.

it’s magical :smiley: i remove those repo and can install systemd-devel.
after i rebuild rpm,in the end of output i got this error:


Checking for unpackaged file(s): /usr/lib/rpm/check-files /usr/src/packages/BUILDROOT/multipath-tools-0.5.0-17.1.i386
error: Installed (but unpackaged) file(s) found:
   /lib/udev/kpartx_id
   /lib/udev/rules.d/11-dm-mpath.rules
   /lib/udev/rules.d/56-multipath.rules
   /lib/udev/rules.d/66-kpartx.rules
   /lib/udev/rules.d/67-kpartx-compat.rules
   /sbin/kpartx
   /usr/include/mpath_persist.h
   /usr/share/man/man3/mpath_persistent_reserve_in.3.gz
   /usr/share/man/man3/mpath_persistent_reserve_out.3.gz
   /usr/share/man/man8/kpartx.8.gz


RPM build errors:
    File must begin with "/": %{_udevrulesdir}/11-dm-mpath.rules
    File must begin with "/": %{_udevrulesdir}/56-multipath.rules
    Installed (but unpackaged) file(s) found:
   /lib/udev/kpartx_id
   /lib/udev/rules.d/11-dm-mpath.rules
   /lib/udev/rules.d/56-multipath.rules
   /lib/udev/rules.d/66-kpartx.rules
   /lib/udev/rules.d/67-kpartx-compat.rules
   /sbin/kpartx
   /usr/include/mpath_persist.h
   /usr/share/man/man3/mpath_persistent_reserve_in.3.gz
   /usr/share/man/man3/mpath_persistent_reserve_out.3.gz
   /usr/share/man/man8/kpartx.8.gz

Well, a lot has changed since 12.1, so it actually was to be expected that that rpm doesn’t build out of the box.

E.g. %{_udevrulesdir} was not defined in 12.1. So you should define it yourself in the spec file (set it to /lib/udev/).

But it might be easier to just compile multipath-tools manually now. As you do have systemd-devel installed now, this should work.

i make and make install multipath-tools without problem.
thank all :slight_smile:

On 2014-09-27 21:56, ooghry wrote:
>
> Miuku;2666804 Wrote:
>>
>> - What does the system do? What is the purpose of the server?
>> - Why are you running 12.1?
>>
> 1.i install nginx mysql on this server and have 2 site on it,

I hope you are aware of the ‘Shellshock’ Bug. Your site is vulnerable.


Cheers / Saludos,

Carlos E. R.
(from 13.1 x86_64 “Bottle” at Telcontar)