Unix & Linux Stack Exchange
Q&A for users of Linux, FreeBSD and other Unix-like operating systems
Latest Questions
0
votes
1
answers
42
views
How can I upgrade to glibc 2.36 or later on PopOS 22.04 LTS?
One of my favorite applications (Anki) now required glibc 2.36 or later for the application to run. Is it possible to upgrade to this version of glibc on PopOS? Is there a more up-to-date APA for the package?
One of my favorite applications (Anki) now required glibc 2.36 or later for the application to run.
Is it possible to upgrade to this version of glibc on PopOS? Is there a more up-to-date APA for the package?
newunix
(139 rep)
Aug 5, 2025, 09:41 AM
• Last activity: Aug 5, 2025, 05:32 PM
2
votes
1
answers
2479
views
Determine libc version used to create static library
I am seeing symbol referencing errors with the static libraries I am using (available with OpenSPARC processor). I have glibc 2.15 on my system. How do I determine the version of glibc used to create the libraries so I can update my system accordingly?
I am seeing symbol referencing errors with the static libraries I am using (available with OpenSPARC processor). I have glibc 2.15 on my system. How do I determine the version of glibc used to create the libraries so I can update my system accordingly?
sanjay
(121 rep)
Aug 28, 2014, 05:49 PM
• Last activity: Jul 27, 2025, 11:03 AM
3
votes
2
answers
6094
views
How do I install some required libraries for a program without sudo?
I am trying to run a program on a computer running Red Hat 6.5. This results in the three following errors: "/lib64/libc.so.6: version `GLIBC_2.14' not found" "/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found" "/lib64/libm.so.6: version `GLIBC_2.15' not found" Clearly I have to install...
I am trying to run a program on a computer running Red Hat 6.5.
This results in the three following errors:
"/lib64/libc.so.6: version `GLIBC_2.14' not found"
"/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found"
"/lib64/libm.so.6: version `GLIBC_2.15' not found"
Clearly I have to install those libraries, but when searching I only found solutions that suggest running "sudo apt-get", which I sadly can't (no sudo access). Thus I need a solution to install them without sudo. (EDIT: This system does not have apt-get, but I am under the impression that yum, which it does have, is not far from the same thing. Still requires root though).
Additionally, I would prefer if the solution only affected my account, or even were limited to the program I am trying to run, so I don't affect other users on this system.
I would appreciate if I could receive some help on how to achieve something like this, or if it is impossible, I would like to know that (and out of curiosity, maybe also why).
felix
(31 rep)
Feb 19, 2015, 12:39 PM
• Last activity: Jul 23, 2025, 10:58 PM
7
votes
1
answers
473
views
Syscalls required by glibc calls
Are there any lists compiled that provide a list of linux system calls used per function in a standard glibc build? For example, `free()` requires `mmap`, `munmap`, `mprotect`, `prlimit64`, and `brk`. If necessary I can figure this out by grepping the source code or some strace wizardry, but I don't...
Are there any lists compiled that provide a list of linux system calls used per function in a standard glibc build?
For example,
free()
requires mmap
, munmap
, mprotect
, prlimit64
, and brk
.
If necessary I can figure this out by grepping the source code or some strace wizardry, but I don't want to reinvent the wheel. I've been searching the web for about a week with no avail, mostly just turning up info on system call wrappers.
I am aware that officially there is no such certainty, but I know from practical experience that this info changes for most functions very rarely.
I asked this on Stack Overflow, but this forum seems more appropriate, since I am looking for documentation (which may or may not exist).
Thanks
user30972097
(73 rep)
Jul 5, 2025, 11:20 PM
• Last activity: Jul 6, 2025, 01:56 PM
2
votes
2
answers
20500
views
'GLIBC_2.32' not found when using apt and apt-get
I'm using Pop! OS. When running any simple ```apt``` or ```apt-get``` command in the terminal, even something as simple as ```apt --help```, I get an error message ``` apt: /lib/x86_64-linux-gnu/libc.so.6: version 'GLIBC_2.32' not found (required by /lib/x86_64-linux-gnu/libsystemd.so.0) ``` However...
I'm using Pop! OS. When running any simple
or -get
command in the terminal, even something as simple as --help
, I get an error message
apt: /lib/x86_64-linux-gnu/libc.so.6: version 'GLIBC_2.32' not found (required by /lib/x86_64-linux-gnu/libsystemd.so.0)
However, when I enter --version
it tells me tat I am using GLIBC 2.32. - specifically, it says
lld (Ubuntu GLIBC 2.32-0ubuntu3) 2.32
Every fix I've found online has suggested using something like apt clean
to clean, update or otherwise fix things, but the Catch-22 here is that
is precisely what I can't use. Is there some sort of manual fix I can do?
This issue is making my computer basically unusable, so any help would be greatly appreciated.
Sam Wilkinson
(21 rep)
Jul 13, 2021, 06:03 PM
• Last activity: Jun 25, 2025, 07:07 PM
1
votes
1
answers
1511
views
When configuring Glibc prior to compiling it I recieve an error concerning kernel headers telling me to use "--with-headers"
I am using the latest stable Linux from Scratch book version. In [Step 5.5.1](https://www.linuxfromscratch.org/lfs/view/stable/chapter05/glibc.html), when configuring Glibc I run the provided script, and receive an error telling me to use the --with-headers configure option, however I am already usi...
I am using the latest stable Linux from Scratch book version. In [Step 5.5.1](https://www.linuxfromscratch.org/lfs/view/stable/chapter05/glibc.html) , when configuring Glibc I run the provided script, and receive an error telling me to use the --with-headers configure option, however I am already using it.
The book states to configure using:
../configure \ --prefix=/usr \ --host=$LFS_TGT \ --build=$(../scripts/config.guess) \ --enable-kernel=3.2 \ --with-headers=$LFS/usr/include \ libc_cv_slibdir=/lib
When doing so I receive the following error:
checking installed Linux kernel header files... missing or too old!
configure: error: GNU libc requires kernel header files from
Linux 3.2.0 or later to be installed before configuring.
The kernel header files are found usually in /usr/include/asm and
/usr/include/linux; make sure these directories use files from
Linux 3.2.0 or later. This check uses , so
make sure that file was built correctly when installing the kernel header
files. To use kernel headers not from /usr/include/linux, use the
configure option --with-headers.
Any advise on how to proceed would be much appreciated.
Lukas
(77 rep)
Jul 8, 2021, 02:35 AM
• Last activity: Jun 21, 2025, 10:49 AM
0
votes
1
answers
2779
views
Error linking svm_python: undefined reference to "exp@@GLIBC_2.2.5"
I've been trying to use the SVM-python implementation provided at tfinley.net. When I use the command make on the extracted directory, I get the following errors: /usr/bin/ld: svm_light/svm_common.o: undefined reference to symbol 'exp@@GLIBC_2.2.5' /lib/x86_64-linux-gnu/libm.so.6: error adding symbo...
I've been trying to use the SVM-python implementation provided at tfinley.net.
When I use the command make on the extracted directory, I get the following errors:
/usr/bin/ld: svm_light/svm_common.o: undefined reference to symbol 'exp@@GLIBC_2.2.5'
/lib/x86_64-linux-gnu/libm.so.6: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
Makefile:92: recipe for target 'svm_python_learn_hideo' failed
make: *** [svm_python_learn_hideo] Error 1
This is the implementation I am trying to use.
AdveRSAry
(101 rep)
Oct 13, 2016, 04:35 PM
• Last activity: Jun 17, 2025, 08:07 AM
3
votes
1
answers
5268
views
`aarch64-linux-musl-cross` has a broken link for `ld-musl-aarch64.so.1`
# The goal I want to run an ARM64 Go binary on x86_64 Kali Linux using QEMU user mode. # The problem I got `aarch64-linux-musl-cross`. ``` ~$ wget https://musl.cc/aarch64-linux-musl-cross.tgz ~$ tar -xvf aarch64-linux-musl-cross.tgz ``` I then used `~/aarch64-linux-musl-cross/bin/aarch64-linux-musl-...
# The goal
I want to run an ARM64 Go binary on x86_64 Kali Linux using QEMU user mode.
# The problem
I got
aarch64-linux-musl-cross
.
~$ wget https://musl.cc/aarch64-linux-musl-cross.tgz
~$ tar -xvf aarch64-linux-musl-cross.tgz
I then used ~/aarch64-linux-musl-cross/bin/aarch64-linux-musl-gcc
to compile a simple hello world Go program. It compiled exactly as I wanted it to.
~/go_projects/bin$ file hello
hello: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-musl-aarch64.so.1, Go BuildID=-37pQ_4dEsp4pnAgj4QV/0unDR_0nE-A-DsF1SfKd/-8CRGAArG5J0XNspP2M-/u6ChmkaiRo9qoxEE15eo, not stripped
But, for some reason, the interpreter ~/aarch64-linux-musl-cross/aarch64-linux-musl/lib/ld-musl-aarch64.so.1
is a broken link to /lib/libc.so
.
I have a file /usr/aarch64-linux-gnu/lib/libc.so
but it's just a text file.
~$ file /usr/aarch64-linux-gnu/lib/libc.so
/usr/aarch64-linux-gnu/lib/libc.so: ASCII text
~$ cat /usr/aarch64-linux-gnu/lib/libc.so
/* GNU ld script
Use the shared library, but some functions are only in
the static library, so try that secondarily. */
OUTPUT_FORMAT(elf64-littleaarch64)
GROUP ( /usr/aarch64-linux-gnu/lib/libc.so.6 /usr/aarch64-linux-gnu/lib/libc_nonshared.a AS_NEEDED ( /usr/aarch64-linux-gnu/lib/ld-linux-aarch64.so.1 ) )
What is the link ld-musl-aarch64.so.1
supposed to point to?
Revoltechs
(135 rep)
Nov 18, 2020, 05:01 AM
• Last activity: Jun 16, 2025, 09:06 PM
0
votes
1
answers
2420
views
"Segmentation fault (core dumped)" is given back when launching most apps on archlinux after upgrade
Noob here ! I have archlabs which runs on archlinux. After normal upgrade, most apps do not run (texmaker, qt5ct ...), when running them from terminal they give the error : "Segmentation fault (core dumped)". I examined most core dumps, couldn't figure out what is the problem, when I tried to run a...
Noob here !
I have archlabs which runs on archlinux. After normal upgrade, most apps do not run (texmaker, qt5ct ...), when running them from terminal they give the error : "Segmentation fault (core dumped)". I examined most core dumps, couldn't figure out what is the problem, when I tried to run a backtrace, I found this answer to be describing this matter really well (second part of the answer), but does not provide steps for noobs to solve it.
here are 1st lines from the backtrace :
Thread 2 (Thread 0x7ffff3684700 (LWP 2439)):
#0 0x00007ffff6a1405f in poll () from /usr/lib/libc.so.6
No symbol table info available.
#1 0x00007ffff3d4063b in ?? () from /usr/lib/libxcb.so.1
No symbol table info available.
#2 0x00007ffff3d4237b in xcb_wait_for_event () from /usr/lib/libxcb.so.1
No symbol table info available.
#3 0x00007ffff3932c51 in ?? () from /usr/lib/libQt5XcbQpa.so.5
No symbol table info available.
#4 0x00007ffff6dabe0f in ?? () from /usr/lib/libQt5Core.so.5
No symbol table info available.
#5 0x00007ffff67bf422 in start_thread () from /usr/lib/libpthread.so.0
No symbol table info available.
#6 0x00007ffff6a1ebf3 in clone () from /usr/lib/libc.so.6
No symbol table info available.
Thread 1 (Thread 0x7ffff3d20800 (LWP 2433)):
#0 0x00007ffff69dd640 in __tzfile_compute () from /usr/lib/libc.so.6
No symbol table info available.
#1 0x00007ffff69dc57d in __tz_convert () from /usr/lib/libc.so.6
No symbol table info available.
#2 0x00007ffff69daa61 in ranged_convert () from /usr/lib/libc.so.6
No symbol table info available.
#3 0x00007ffff69dadac in __mktime_internal () from /usr/lib/libc.so.6
No symbol table info available.
#4 0x00007ffff6d9fd30 in qMkTime(tm*) () from /usr/lib/libQt5Core.so.5
No symbol table info available.
#5 0x00007ffff6e749ce in ?? () from /usr/lib/libQt5Core.so.5
No symbol table info available.
#6 0x00007ffff6e75068 in ?? () from /usr/lib/libQt5Core.so.5
No symbol table info available.
#7 0x00007ffff6e7516d in ?? () from /usr/lib/libQt5Core.so.5
No symbol table info available.
#8 0x00007ffff6e75620 in ?? () from /usr/lib/libQt5Core.so.5
No symbol table info available.
#9 0x00007ffff6e7784c in QDateTime::setMSecsSinceEpoch(long long) () from /usr/lib/libQt5Core.so.5
No symbol table info available.
#10 0x00007ffff6e79c81 in QDateTime::fromMSecsSinceEpoch(long long, Qt::TimeSpec, int) () from /usr/lib/libQt5Core.so.5
after this, really long repetitive sections are listed.
Thanks in advance.
hasn
(1 rep)
Jul 22, 2020, 12:46 PM
• Last activity: May 14, 2025, 08:07 AM
2
votes
1
answers
1960
views
How to make my ELF run with both new and old version of glibc?
When I'm compiling my elf, it is "best practice" to make it link against the oldest version of glibc I can, so it will work both on new and old versions of glibc. i.e. if I use realpath, which in `readelf` output of glibc we can see has both a GLIBC_2.0 version and a GLIBC_2.3 version, I want to use...
When I'm compiling my elf, it is "best practice" to make it link against the oldest version of glibc I can, so it will work both on new and old versions of glibc.
i.e. if I use realpath, which in
readelf
output of glibc we can see has both a GLIBC_2.0 version and a GLIBC_2.3 version, I want to use the old version so my ELF would work on glibc 2.0/1/2.
But the GLIBC_2.3 version was probably developed and upgraded since it was published, and I guess GLIBC_2.0 version hasn't changed since glibc 2.3 has been published. So I guess I want my elf to use GLIBC_2.3 version when it is present, and when not, to fallback to the GLIBC_2.0 version.
Is is possible? Or what don't I understand?
speller
(509 rep)
Feb 22, 2015, 07:46 PM
• Last activity: Apr 22, 2025, 10:04 PM
1
votes
1
answers
6290
views
how to install libc6 2.34 from sources?
I'm running Linux Mint 20.2 Uma and I'm trying to upgrade the linux kernel version. I want to install the kernel version 5.15rc3 but the problem is that after I download the .deb packages from the mainline (https://kernel.ubuntu.com/~kernel-ppa/mainline/?C=N;O=D) and I `dpkg -i *.deb` them I have th...
I'm running Linux Mint 20.2 Uma and I'm trying to upgrade the linux kernel version. I want to install the kernel version 5.15rc3 but the problem is that after I download the .deb packages from the mainline (https://kernel.ubuntu.com/~kernel-ppa/mainline/?C=N;O=D) and I
dpkg -i *.deb
them I have this error.
dpkg: dependency problems prevent configuration of linux-headers-5.15.0-051500rc3-generic:
linux-headers-5.15.0-051500rc3-generic depends on linux-headers-5.15.0-051500rc3; however:
Package linux-headers-5.15.0-051500rc3 is not installed.
linux-headers-5.15.0-051500rc3-generic depends on libc6 (>= 2.34); however:
Version of libc6:amd64 on system is 2.31-0ubuntu9.2.
As I understand I need to have the libc6 installed. Currently there is no libc6 version 2.34 already compiled for linux mint so I have to do it myself.
I've done the steps from "Building glibc without installing" https://sourceware.org/glibc/wiki/Testing/Builds and I've got the lib built but what do I need to do now in order to install it? I should just copy and paste the output of the build over my root folder?
Tarida George
(111 rep)
Oct 9, 2021, 08:01 AM
• Last activity: Apr 22, 2025, 06:00 PM
0
votes
1
answers
2441
views
Suse: How to update a single package in SLES10 SP4
I am in the middle of an activity and have never worked with SLES10 SP4 In SLES11 `zypper update glibc*` updates all glibc packages .. but this is not working in SLES10 SP4 .. can someone tell me how to update a single package in SLES10 SP4
I am in the middle of an activity and have never worked with SLES10 SP4
In SLES11
zypper update glibc*
updates all glibc packages .. but this is not working in SLES10 SP4 .. can someone tell me how to update a single package in SLES10 SP4
Aditya Pednekar
(173 rep)
May 8, 2015, 09:25 PM
• Last activity: Apr 17, 2025, 10:05 PM
1
votes
1
answers
47
views
Fedora 38->40 upgrade failed, /bin/bash requires glibc_2.38
Per the title, I upgraded my desktop from Fedora 38->40. That part was successful. I was going to upgrade to Fedora 41, but new dependency errors appeared that seemed tied to `sagemath`, which I had removed in Fedora 38, before upgrading. So, I did a `remove-retired-packages` to see if this would cl...
Per the title, I upgraded my desktop from Fedora 38->40. That part was successful.
I was going to upgrade to Fedora 41, but new dependency errors appeared that seemed tied to
sagemath
, which I had removed in Fedora 38, before upgrading.
So, I did a remove-retired-packages
to see if this would clear up the message. Except the system came to Zlib, which would affect sudo, and I shouldn't remove it.
Since this was all driven by KiCAD and ngspice not talking under Fedora 38, I decided to see if they were working now. While KiCAD simulator could run ngspice now, ngspice refused to work because a needed library from Fedora 38 was missing? I started a new CLI and attempted to run ngspice manually, but I got the same result. Strange.
Then I started getting the error that bash needed glibc_2.38
. I'm like, why?
I tried to shut down, but that option was missing from the menu.
Shutdown from the CLI failed because gblibc_2.38
was missing.
So I killed the system only to have the boot loader fail. No reason given, and I can't start a previous version because of an MB issue with USB keyboards, arrows only hit 1st and last options in Grub? Another issue for another day.
I started the live CD and followed my notes to recover an OS from a previous issue concerning a BTRFS file system that burped on me.
I reached the point where I do chroot /mnt
, which said it can't find glibc_2.38
.
So, how do I fix this problem?
I wish Fedora could restamp their OS and config files into the existing system without requiring me to wipe and reload. I don't want to lose all the configuration settings I've put on this drive and the time needed to reload everything.
E Net Arch
(153 rep)
Mar 6, 2025, 06:14 AM
• Last activity: Mar 6, 2025, 10:49 AM
-1
votes
1
answers
39
views
How can I install Node version 5.6.0 or higher on Ubuntu 16.04.4 LTS?
The computer is running Ubuntu 16.04.4 LTS 64-bit. Running `nvm use 16.20.2` works fine and gives me nodejs 4.2.6 (checked with `nodejs --version`). I'd like to use Node version 5.6.0 or higher on it, so I tried running: ``` user@server:~/test$ nvm use 18.18.2 ``` But I get the error: ``` node: /lib...
The computer is running Ubuntu 16.04.4 LTS 64-bit. Running
nvm use 16.20.2
works fine and gives me nodejs 4.2.6 (checked with nodejs --version
). I'd like to use Node version 5.6.0 or higher on it, so I tried running:
user@server:~/test$ nvm use 18.18.2
But I get the error:
node: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.27' not found (required by node)
node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.25' not found (required by node)
node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by node)
The error occurs because the Node.js version 18.18.2 requires a more recent glibc version (2.25, 2.27, or 2.28) that is not installed.
How can I install Node version 5.6.0 of higher on Ubuntu 16.04?
Franck Dernoncourt
(5533 rep)
Feb 20, 2025, 09:18 AM
• Last activity: Feb 21, 2025, 05:36 AM
3
votes
3
answers
867
views
How much guarantee is there that glibc math functions are consistent across versions?
I am working with a Monte-Carlo based simulation program for particle physics and I am trying to understand some of the randomness I observe. The principle of this program is that it injects a particle into some medium and then it uses a random number generator to decide what type of interactions it...
I am working with a Monte-Carlo based simulation program for particle physics and I am trying to understand some of the randomness I observe. The principle of this program is that it injects a particle into some medium and then it uses a random number generator to decide what type of interactions it has. This allows it to create multiple possible paths for the particle to take. As a user, I can specify the seed values used to initiate the RNG, to ensure reproducibility later on.
Now, I recently came across something weird. The computing cluster I am working on did an **OS upgrade**. All the files were preserved, as well as the binary of the simulation program. However, **the simulation no longer produces the same results** given the identical seed values as before. So somehow the same binary, on the same hardware, but with a different Linux version, is producing a different sequence of interactions.
Looking at the documentation of the simulation framework, I found that the RNG used internally is the RANMAR generator (https://paulbourke.net/miscellaneous/random/) . This is supposed to be a completely portable RNG, thus not dependent on the system you use. Hence this should not be the source of the different output. After talking to the developers, they concluded that the difference would probably be in how some mathematical manipulations are done (for example trigonometric functions). After all, the binary is dynamically linked to the standard library and this was indeed changed during the OS upgrade. **Specifically, the glibc version was upgraded from 2.17 to 2.34**.
I have tried to look online whether this _can_ make a difference for functions included in
libc
and libm
, but I have not been able to find any conclusive answer. I found [some](https://access.redhat.com/solutions/7032163) mention of differences in newer versions, but this sounds more like a bug that was later on patched.
Therefore, my question: Is there a guarantee that mathematical functions in newer versions of glibc
will produce the exact same results? And maybe related, is there any easy way to check what changed between two versions of the library?
Satjaiga
(49 rep)
Feb 12, 2025, 08:49 AM
• Last activity: Feb 13, 2025, 03:53 PM
6
votes
1
answers
12142
views
Run a program with a newer libc
How do I run a program that was compiled against `glibc 2.14` on an old system? I'm unable to update anything. Can I download newest `glibc` and somehow have the program use it instead of the installed one?
How do I run a program that was compiled against
glibc 2.14
on an old system?
I'm unable to update anything. Can I download newest glibc
and somehow have the program use it instead of the installed one?
glo
(61 rep)
Apr 10, 2015, 03:55 PM
• Last activity: Feb 7, 2025, 08:55 AM
2
votes
2
answers
167
views
Ghost vulnerability - recompile C/C++ programs?
I've `CentOS 6.0` server with `glibc-2.12-1.7.el6.x86_64` running many open source services and some of my own C programs. To fix ghost vulnerability, I need to update it to `glibc-2.12-1.149.el6_6.5`. Since the version difference seems large. I was wondering whether I need to recompile my C/C++ app...
I've
CentOS 6.0
server with glibc-2.12-1.7.el6.x86_64
running many open source services and some of my own C programs.
To fix ghost vulnerability, I need to update it to glibc-2.12-1.149.el6_6.5
.
Since the version difference seems large.
I was wondering whether I need to recompile my C/C++ apps or even some of the open source services ?
How do I even test them bcos testing everything is next to impossible ?
I've read that some people had to revert the update bcos they faced segfaults in their apps.
amolkul
(33 rep)
Feb 15, 2015, 03:22 PM
• Last activity: Jan 14, 2025, 08:46 AM
0
votes
0
answers
12
views
During toolchain installation, when glibc gets installed, it reports an error message
During toolchain installation, when glibc gets installed, it reports an error message ``` zic: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory ``` I checked the rpm build and installation order of the packages in the rpm list. It is lik...
During toolchain installation, when glibc gets installed, it reports an error message
zic: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
I checked the rpm build and installation order of the packages in the rpm list. It is like
binutils_cross gcc11_bootstrap glibc libstdc++_bootstrap binutils gcc11
After some investigation, I found that
libstdc++.so.6 is installed by gcc11 rpm along with libstdc++.so.6.0.24 and libstdc++.so.6.0.24-gdb.py.
And until it is glibc time for installation, libstdc++.so.6 is not in the required path.
The error is reported when time zone information is compiled by 'zic' command as mentioned in the glibc spec file in the %post section after %install
zic -L /dev/null -d $ZONEINFO $ZONEINFO/${tz}
Query - Does zic, a timezone compiler, really require libstdc++.so.6 to compile timezone information? How can I provide the libstdc++.so.6 before the installation of gcc11 rpm?
I am using Linux openSUSE Leap 42.3
Regards
atulya
(101 rep)
Jan 13, 2025, 04:46 AM
• Last activity: Jan 13, 2025, 05:51 AM
1
votes
2
answers
1357
views
How to run node v20.x on CentOs 7.9?
I've been stuck on this issue for too long. Basically I have a node v20.x app that I'd like to run on a CentOS 7.9 server. For reasons, we do not wish to upgrade the OS now but I'm sure there must be a way to run node v20? I've built and installed GCC 10.3 from source, which I've read was required f...
I've been stuck on this issue for too long. Basically I have a node v20.x app that I'd like to run on a CentOS 7.9 server. For reasons, we do not wish to upgrade the OS now but I'm sure there must be a way to run node v20?
I've built and installed GCC 10.3 from source, which I've read was required for node 20 but still getting errors.
These are the errors I currently have on running
node .
node .
node: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by node)
`node: /lib64/libstdc++.so.6: version GLIBCXX_3.4.20 not found (required by node)
node: /lib64/libstdc++.so.6: version CXXABI_1.3.9 not found (required by node)
node: /lib64/libstdc++.so.6: version GLIBCXX_3.4.21 not found (required by node)`
Would this be possible? And how do I proceed?
Also, I'm a bit careful not to interupt the apache / mysql server running in the mean time.
I've read that upgrading glibc on CentOS 7 can be extremely dangerous making the system unbootable?
Is there really no safe way around this?
Z0q
(631 rep)
Nov 22, 2024, 04:00 PM
• Last activity: Jan 6, 2025, 12:51 PM
2
votes
1
answers
47
views
Why can I not intercept `write` in `seq`?
Based on https://unix.stackexchange.com/questions/784690/limit-file-io-speed I have built https://git.data.coop/tange/tangetools/src/branch/master/iothrottle It works for some programs: iothrottle -i 10M cat foo > bar # Yes, here you could just use pv iothrottle -o 1M ffmpeg -i foo.mp3 foo.wav iothr...
Based on https://unix.stackexchange.com/questions/784690/limit-file-io-speed I have built https://git.data.coop/tange/tangetools/src/branch/master/iothrottle
It works for some programs:
iothrottle -i 10M cat foo > bar # Yes, here you could just use pv
iothrottle -o 1M ffmpeg -i foo.mp3 foo.wav
iothrottle -o 1M cp -a foodir /other/fs/foodir
This does not:
iothrottle -o 1M cp -a foodir /same/fs/foodir
because on the same file system
cp
uses a single call to copy_file_range
per file.
I am OK with that limitation.
It also does not work for seq
. When I run strace seq 100000
I get:
~~~
write(1, "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14"..., 8192) = 8192
write(1, "\n1861\n1862\n1863\n1864\n1865\n1866\n1"..., 4096) = 4096
write(1, "2680\n2681\n2682\n2683\n2684\n2685\n26"..., 4096) = 4096
write(1, "499\n3500\n3501\n3502\n3503\n3504\n350"..., 4096) = 4096
write(1, "18\n4319\n4320\n4321\n4322\n4323\n4324"..., 4096) = 4096
write(1, "7\n5138\n5139\n5140\n5141\n5142\n5143\n"..., 4096) = 4096
write(1, "\n5957\n5958\n5959\n5960\n5961\n5962\n5"..., 4096) = 4096
write(1, "6776\n6777\n6778\n6779\n6780\n6781\n67"..., 4096) = 4096
write(1, "595\n7596\n7597\n7598\n7599\n7600\n760"..., 4096) = 4096
write(1, "14\n8415\n8416\n8417\n8418\n8419\n8420"..., 4096) = 4096
write(1, "3\n9234\n9235\n9236\n9237\n9238\n9239\n"..., 3838) = 3838
~~~
So it seems to call write
(and not some mmap
or other magic), and thus ought to work.
But when I run: IOTHROTTLE_DEBUG=1 iothrottle -o 1M seq 10000 >/dev/null
I get:
~~~
init called: default read_limit=0, write_limit=0
IOTHROTTLE_READ=0
IOTHROTTLE_WRITE=1048576
Final read_limit=0, write_limit=1048576
allowed: 608 written: 0
allowed: 617 written: 0
~~~
This tells me that iothrottle
only intercepts 2 calls to write
.
What am I missing?
Ole Tange
(37348 rep)
Dec 29, 2024, 07:53 PM
• Last activity: Dec 30, 2024, 07:42 AM
Showing page 1 of 20 total questions