What exactly do you patch? Say you have a TCP server, written in Python or in Go. Do you have to update Python and Go ASAP then and recompile the Go server? Custom compiled Apache, Nginx? Recompile those? That's a lot of work..
What exactly do you patch? Say you have a TCP server, written in Python or in Go. Do you have to update Python and Go ASAP then and recompile the Go server? Custom compiled Apache, Nginx? Recompile those? That's a lot of work..
This question had me feeling kind of old. Does nobody learn what shared libraries are anymore?
None of them restarted. So I restarted them all myself...
I bet this bug will live on forever in people's Docker stacks.
You _can_ statically link glibc, but then you lose some stuff. https://sourceware.org/glibc/wiki/FAQ#Even_statically_linked...
And 'immutable practices' don't damage anything - they simply make things take longer, duplicate effort, make inefficient use of resources, and make everything generally more inflexible. The only benefit seems to be high level abstraction at the cost of everything else.
[0] https://golang.org/pkg/net/ (see "netdns" setting)
man systemctl
daemon-reexec
Reexecute the systemd manager. This will serialize the manager
state, reexecute the process and deserialize the state again. This
command is of little use except for debugging and package upgrades.
Sometimes, it might be helpful as a heavy-weight daemon-reload.
While the daemon is being reexecuted, all sockets systemd listening
on behalf of user configuration will stay accessible. [root@server ~]# find /bin/ /sbin/ /usr/bin/ /usr/sbin/ /usr/lib* /usr/local/bin/ /usr/local/sbin/ /usr/local/lib* -type f -perm /u+x -exec file {} \; | grep statically | cut -d : -f 1 | xargs rpm -qf | sort -u
busybox-1.2.0-7.el5.x86_64
cryptsetup-luks-1.0.3-5.el5.i386
cryptsetup-luks-1.0.3-5.el5.x86_64
device-mapper-1.02.39-1.el5.i386
device-mapper-1.02.39-1.el5.x86_64
device-mapper-multipath-0.4.7-34.el5_5.1.x86_64
dmraid-1.0.0.rc13-63.el5.x86_64
dump-0.4b41-4.el5.x86_64
e2fsprogs-1.39-23.el5.x86_64
glibc-2.5-123.el5_11.1.i686
glibc-2.5-123.el5_11.1.x86_64
glibc-common-2.5-123.el5_11.1.x86_64
grub-0.97-13.5.x86_64
... etc. And yes, it can be a lot of work. It's easier to only use your distro's official packages and update the patched ones they release. Luckily most software devs are smart and compile dynamically.