[opensuse] Problem installing an rpm package because of hardlinks.
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi, I have a package that I can't install an update. YaST simply says: Subprocess failed. Error: RPM failed: Command exited with status 1. I try to get more details using "rpm" directly: Telcontar:~ # rpm --upgrade --verbose /var/cache/zypp/packages/OBS_Games/noarch/FlightGear-data-2016.1.1-1.1.noarch.rpm Preparing packages... FlightGear-data-2016.1.1-1.1.noarch error: unpacking of archive failed on file /usr/share/doc/packages/FlightGear-data/COPYING;57e7a975: cpio: link error: FlightGear-data-2016.1.1-1.1.noarch: install failed Telcontar:~ # Not much info. So I try strace: Telcontar:~ # strace -ff -o rpmtrace2 rpm --upgrade --verbose /var/cache/zypp/packages/OBS_Games/noarch/FlightGear-data-2016.1.1-1.1.noarch.rpm So I get two trace files: - -rw-r--r-- 1 root root 15241 Sep 25 12:43 rpmtrace2.12999 - -rw-r--r-- 1 root root 27810500 Sep 25 12:45 rpmtrace2.13013 Judging on timestamp, it is the second one which matters. And sure, this is the error: close(20) = 0 link("/usr/share/flightgear/Fonts/LiberationFonts/COPYING;57e7aa6b", "/usr/share/doc/packages/FlightGear-data/COPYING;57e7aa6b") = -1 EXDEV (Invalid cross-device link) lstat("/usr/share/flightgear/Fonts/LiberationFonts/COPYING;57e7aa6b", {st_mode=S_IFREG, st_size=17992, ...}) = 0 unlink("/usr/share/flightgear/Fonts/LiberationFonts/COPYING;57e7aa6b") = 0 close(19) = 0 munmap(0x7f96ae694000, 4096) = 0 write(2, "error: ", 7) = 7 write(2, "unpacking of archive failed on f"..., 105) = 105 close(18) = 0 write(2, "error: ", 7) = 7 write(2, "FlightGear-data-2016.1.1-1.1.noa"..., 52) = 52 umask(022) = 022 close(4) = 0 It is trying to hardlink a file: /usr/share/flightgear/Fonts/LiberationFonts/COPYING to /usr/share/doc/packages/FlightGear-data/COPYING And that is impossible in my system, because "/usr/share/flightgear" is a different partition. In fstab I have: LABEL=c_usr_gamedta /usr/gamedata reiserfs acl,user_xattr,barrier=flush,relatime 1 4 /usr/gamedata/flightgear/ /usr/share/flightgear none bind 0 0 I was told to try bind mount also the document directory, so that they are the same device. So I created "/usr/gamedata/flightgear.doc", and added this entry to fstab: /usr/gamedata/flightgear.doc /usr/share/doc/packages/FlightGear-data none bind 0 0 and I get: Telcontar:~ # mount | grep -i fligh /dev/sdc12 on /usr/share/doc/packages/FlightGear-data type reiserfs (rw,relatime,user_xattr,acl) /dev/sdc12 on /usr/share/flightgear type reiserfs (rw,relatime,user_xattr,acl) Telcontar:~ # You can see it is the same partition. But it doesn't work. In fact, the errors from rpm pasted above are taken after doing that change. What can I do? Interestingly, some files are installed sucesfully to that directory. At least another one fails (COPYING): Telcontar:~ # ls -l /usr/share/doc/packages/FlightGear-data total 116 - -rw-r--r-- 1 root root 718 Feb 17 2016 AUTHORS - -rw-r--r-- 1 root root 76525 Feb 17 2016 NEWS - -rw-r--r-- 1 root root 1380 Feb 17 2016 README - -rw-r--r-- 1 root root 32179 Mar 20 2016 Thanks Telcontar:~ # - -- Cheers Carlos E. R. (from 13.1 x86_64 "Bottle" at Telcontar) -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) iEYEARECAAYFAlfnr4IACgkQtTMYHG2NR9X4wQCfR7Pbbs3NukurCBsW5aFuZi+n 6jMAnRLa65UwTlFXod9pWIbWpwpRw72U =5i8q -----END PGP SIGNATURE----- -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org
participants (1)
-
Carlos E. R.