Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 20 Sep 2023 09:58:10 +0200
From:      Matthias Apitz <guru@unixarea.de>
To:        Dimitry Andric <dim@freebsd.org>
Cc:        KIRIYAMA Kazuhiko <kiri@truefc.org>, freebsd-current@freebsd.org
Subject:   Re: make installworld filed with "Required library libdialog.so.9 not found"
Message-ID:  <ZQqmElvQItZWYchV@pureos>
In-Reply-To: <25BC05CE-8A33-4685-8490-CC4970FB8FDA@FreeBSD.org>
References:  <202309200247.38K2lSnT044896@kx.truefc.org> <25BC05CE-8A33-4685-8490-CC4970FB8FDA@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
El d=C3=ADa mi=C3=A9rcoles, septiembre 20, 2023 a las 08:56:28 +0200, Dimit=
ry Andric escribi=C3=B3:

> On 20 Sep 2023, at 04:47, KIRIYAMA Kazuhiko <kiri@truefc.org> wrote:
> >=20
> > I'm updating 15.0-CURRENT (main-n265415-b2bd87bb01a9) from
> > 14.0-CURRENT, but make installworld filed with "Required
> > library libdialog.so.9 not found" as follows:
> >=20
> > root@vm:/usr/src # make installworld
> > make[1] warning: /usr/src/: Read-only file system.
> > make[1]: "/usr/obj/usr/src/amd64.amd64/toolchain-metadata.mk" line 1: U=
sing cached toolchain metadata from build at vm.truefc.org on Tue Sep 19 12=
:43:15 JST 2023
> > --------------------------------------------------------------
> >>>> Install check world
> > --------------------------------------------------------------
> > mkdir -p /tmp/install.bRcisFAS
> > progs=3D$(for prog in [ awk cap_mkdb cat chflags chmod chown cmp cp  da=
te echo egrep find grep id install   ln make mkdir mtree mv pwd_mkdb  rm se=
d services_mkdb sh sort strip sysctl test time true uname wc tzsetup makewh=
atis ; do  if progpath=3D`env PATH=3D/usr/obj/usr/src/amd64.amd64/tmp/bin:/=
usr/obj/usr/src/amd64.amd64/tmp/usr/sbin:/usr/obj/usr/src/amd64.amd64/tmp/u=
sr/bin:/usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/sbin:/usr/obj/usr/src/am=
d64.amd64/tmp/legacy/usr/bin:/usr/obj/usr/src/amd64.amd64/tmp/legacy/bin:/u=
sr/obj/usr/src/amd64.amd64/tmp/legacy/usr/libexec::/sbin:/bin:/usr/sbin:/us=
r/bin which $prog`; then  echo $progpath;  else  echo "Required tool $prog =
not found in PATH ("/usr/obj/usr/src/amd64.amd64/tmp/bin:/usr/obj/usr/src/a=
md64.amd64/tmp/usr/sbin:/usr/obj/usr/src/amd64.amd64/tmp/usr/bin:/usr/obj/u=
sr/src/amd64.amd64/tmp/legacy/usr/sbin:/usr/obj/usr/src/amd64.amd64/tmp/leg=
acy/usr/bin:/usr/obj/usr/src/amd64.amd64/tmp/legacy/bin:/usr/obj/usr/src/am=
d64.amd64/tmp/legacy/usr!
> > /libexec::/sbin:/bin:/usr/sbin:/usr/bin")." >&2;  exit 1;  fi;  done); =
 if [ -z "" ] ; then  libs=3D$(ldd -f "%o %p\n" -f "%o %p\n" $progs 2>/dev/=
null | sort -u | grep -Ev '\[.*]' |  while read line; do  set -- $line;  if=
 [ "$2 $3" !=3D "not found" ]; then  echo $2;  else  echo "Required library=
 $1 not found." >&2;  exit 1;  fi;  done);  fi;  cp $libs $progs /tmp/insta=
ll.bRcisFAS
> > Required library libdialog.so.9 not found.
> > *** Error code 1
>=20
> By any chance, did you run "make delete-old" *before* running make instal=
lworld? Because you should only delete old libraries, such as libdialog.so.=
9, after you have successfully completed the installation. (In fact, you ca=
n even postpone deleting old libraries until much later, it's really only n=
eeded to get your system "squeaky clean".)
>=20
> -Dimitry

To the OP:

Where was the 'make buildworld' run before? On the same host?

I'm asking because I faced a similar problem while updating a server
=66rom 13-CURRENT to 14-CURRENT (from git head on August 6) You can read
the thread here:
https://lists.freebsd.org/archives/freebsd-current/2023-August/004121.html

In my case (as my investigation found out) all the update process

make buildworld
make buildkernel
=2E..
make installkernel
reboot
make installworld
make delete...

went fine as it should. But when I later installed the same
kernel+world(!!!) into a directory to create of this a bootable image with:

make installworld DESTDIR=3D/home/...

this failed with the same problem you describe. The underlying problem
was/is that 'make buildworld' puts some tools into a subdir
/usr/obj/usr/src/amd64.amd64/tmp/legacy/bin/
i.e. tools from the system and from the moment where/when you run
make buildworld; and these old tools later on make installworld DESTDIR=3D/=
home/...
can not find there (older) shared libs.

The solution in my case was to rerun 'make buildworld' on the
now already updated system.

Maybe this helps you to understand your issue.

	matthias

--=20
Matthias Apitz, =E2=9C=89 guru@unixarea.de, http://www.unixarea.de/ +49-176=
-38902045
Public GnuPG key: http://www.unixarea.de/key.pub



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?ZQqmElvQItZWYchV>