Skip to main content
Node.js includes the V8 engine's source code.
Source Link
Stephen Kitt
  • 480.9k
  • 59
  • 1.2k
  • 1.4k

When you download Node.js from the download site, the binary you get is statically linked against libv8 5.1.281.81. There are a number of ways to verify this:

  • look for libv8 in the binary:

      strings bin/node | less -plibv8
    

    (this will lead you to the "5.1.281.81" string in the binary)

  • list the symbols in the binary and unmangle them:

      nm bin/node | c++filt | less -pv8::
    

    (the v8:: symbols come from libv8).

The archive you downloaded doesn't use Debian's packaging system, so the package manager's dependencies don't come into consideration. If you didn't install the libv8-3.14.5 package explicitly, presumably some other package installed on your system depends on it. If nothing actually needs it, you can remove libv8-3.14.5 and you'll see that the node binary in /opt works fine without it.

In any case, even with a packaged version of Node.js you wouldn't necessarily see a dependency on libv8, because Node.js includes the source of the V8 engine; it's not a separate library (at least not for Node.js).

(To run the above commands, you'll need to install the binutils package for nm and c++filt.)

When you download Node.js from the download site, the binary you get is statically linked against libv8 5.1.281.81. There are a number of ways to verify this:

  • look for libv8 in the binary:

      strings bin/node | less -plibv8
    

    (this will lead you to the "5.1.281.81" string in the binary)

  • list the symbols in the binary and unmangle them:

      nm bin/node | c++filt | less -pv8::
    

    (the v8:: symbols come from libv8).

The archive you downloaded doesn't use Debian's packaging system, so the package manager's dependencies don't come into consideration. If you didn't install the libv8-3.14.5 package explicitly, presumably some other package installed on your system depends on it. If nothing actually needs it, you can remove libv8-3.14.5 and you'll see that the node binary in /opt works fine without it.

(To run the above commands, you'll need to install the binutils package for nm and c++filt.)

When you download Node.js from the download site, the binary you get is statically linked against libv8 5.1.281.81. There are a number of ways to verify this:

  • look for libv8 in the binary:

      strings bin/node | less -plibv8
    

    (this will lead you to the "5.1.281.81" string in the binary)

  • list the symbols in the binary and unmangle them:

      nm bin/node | c++filt | less -pv8::
    

    (the v8:: symbols come from libv8).

The archive you downloaded doesn't use Debian's packaging system, so the package manager's dependencies don't come into consideration. If you didn't install the libv8-3.14.5 package explicitly, presumably some other package installed on your system depends on it. If nothing actually needs it, you can remove libv8-3.14.5 and you'll see that the node binary in /opt works fine without it.

In any case, even with a packaged version of Node.js you wouldn't necessarily see a dependency on libv8, because Node.js includes the source of the V8 engine; it's not a separate library (at least not for Node.js).

(To run the above commands, you'll need to install the binutils package for nm and c++filt.)

Source Link
Stephen Kitt
  • 480.9k
  • 59
  • 1.2k
  • 1.4k

When you download Node.js from the download site, the binary you get is statically linked against libv8 5.1.281.81. There are a number of ways to verify this:

  • look for libv8 in the binary:

      strings bin/node | less -plibv8
    

    (this will lead you to the "5.1.281.81" string in the binary)

  • list the symbols in the binary and unmangle them:

      nm bin/node | c++filt | less -pv8::
    

    (the v8:: symbols come from libv8).

The archive you downloaded doesn't use Debian's packaging system, so the package manager's dependencies don't come into consideration. If you didn't install the libv8-3.14.5 package explicitly, presumably some other package installed on your system depends on it. If nothing actually needs it, you can remove libv8-3.14.5 and you'll see that the node binary in /opt works fine without it.

(To run the above commands, you'll need to install the binutils package for nm and c++filt.)