opensvc / multipath-tools

Other
59 stars 47 forks source link

CentOS 9 - Able to build latest version - But cannot get install files into proper directories #70

Closed LeroyINC closed 9 months ago

LeroyINC commented 1 year ago

I am hoping to upgrade to the newest version to take advantage of the fix for "white label" drives that have the Vendor field empty

I am able to use git and pull the v0.9.5 version and successfully make/build the version.

but when i run "make DESTDIR="/usr" install" it puts all the files into a bunch of directories.. some are correct and some are not.

I tried to use a bunch of combinations like: "make prefix=/usr DESTDIR="/usr" install" "make prefix=/usr systemd_prefix=/sbin DESTDIR="/usr" install" "make prefix=/usr systemd_prefix=/sbin install"

and a bunch of other combinations and settings... but no matter what I can't get all the files to end up in their proper directories.

anyone have any insights on how to run the "make install" command for CentOS 9?

thank you.

LeroyINC commented 1 year ago

i think i got it pretty close.. with this

make usr_prefix=/usr install - -- then create /etc/multipath.conf file

but then when i go to start the service i get a error during start and it does not give much detail

[root@LeroyTest multipath-tools]# systemctl daemon-reload [root@LeroyTest multipath-tools]# systemctl start multipathd Job for multipathd.service failed because the control process exited with error code. See "systemctl status multipathd.service" and "journalctl -xeu multipathd.service" for details. [root@LeroyTest multipath-tools]# systemctl status multipathd × multipathd.service - Device-Mapper Multipath Device Controller Loaded: loaded (/usr/lib/systemd/system/multipathd.service; disabled; preset: enabled) Active: failed (Result: exit-code) since Wed 2023-07-19 21:08:41 EDT; 2s ago TriggeredBy: ○ multipathd.socket Process: 6701 ExecStart=/sbin/multipathd -d -s (code=exited, status=1/FAILURE) Main PID: 6701 (code=exited, status=1/FAILURE) Status: "configure" CPU: 34ms

Jul 19 21:08:41 LeroyTest systemd[1]: Starting Device-Mapper Multipath Device Controller... Jul 19 21:08:41 LeroyTest multipathd[6701]: multipathd v0.9.5-g24bc5ca: start up Jul 19 21:08:41 LeroyTest multipathd[6701]: DM multipath kernel driver not loaded Jul 19 21:08:41 LeroyTest multipathd[6701]: reconfigure: setting up paths and maps Jul 19 21:08:41 LeroyTest systemd[1]: multipathd.service: Main process exited, code=exited, status=1/FAILURE Jul 19 21:08:41 LeroyTest systemd[1]: multipathd.service: Failed with result 'exit-code'. Jul 19 21:08:41 LeroyTest systemd[1]: Failed to start Device-Mapper Multipath Device Controller.

mwilck commented 12 months ago

Please read the section about prefixes in README.md carefully and check what your system needs. systemd_prefix=/sbin is almost certainly wrong. If you intend to use the binaries created by make install, you need to set DESTDIR=/ and adapt the prefixes and other paths to match the settings of your distribution, as described in README.md.

In general, if you use multipath-tools in production, I recommend to package it cleanly using your distribution's build service or standard package building procedure, and using your distribution's multipath-tools package as a template.

From your logs, DM multipath kernel driver not loaded looks bad, please load the dm-mpath kernel module. It's also possible that the multipathd.socket systemd service was still running, which would cause multipathd startup to fail if it's not started by systemd. If this doesn't help, please increase verbosity (verbosity 3 in multipath.conf).

mwilck commented 10 months ago

I'm going to close this if I see no further updates.

LeroyINC commented 10 months ago

Honestly... i gave up. the documentation on the paths and variables was just so confusing. and no matter what i tried the final files never ended up in the right place for my Linux OS distribution. I change one path variable and it affected others. let alone setting 3 or 4..

it actually took me less time to manually build it to a temp location. then manually figure out where each file should go by doing a search for each file.

this documentation needs some work.

mwilck commented 9 months ago

This is documented in README.md. Moreover, Makefile.inc lists all the different options in a code block that shouldn't be too hard to read.

I admit that the dependencies between the different settings are complicated. The README doesn't document everything in order to avoid making it too confusing for the standard cases. CentOS should be pretty much standard, therefore I'm wondering what went wrong in your environment (hint: it may be helpful to study the build recipe for your distributions's original package).

this documentation needs some work.

This isn't helpful. You are welcome submit suggestions for improvement, or tell us what you think is wrong or confusing. Or just show me the result of the installation the way you wont it to be. Then I'll either be able to figure out how to set the variables, or what's wrong with our Makefiles and/or our documentation.

mwilck commented 9 months ago

Closing. 0.9.7 has had some updates wrt the installation logic. Re-open if you have additional information.