←back to thread

272 points abdisalan | 7 comments | | HN request time: 0.001s | source | bottom
Show context
Klonoar ◴[] No.42175423[source]
You know, I ran into something similar recently with a static site engine (Zola). Was moving to a new host and figured I'd just copy and run the binary, only to have it fail due to linking OpenSSL. I had customized the internals years ago and stupidly never committed it anywhere, and attempting to build it fresh ran into issues with yanked crates.

Since it's just a binary though, I wound up grabbing the OpenSSL from the old box and patching the binary to just point to that instead. Thing runs fine after that.

This is all, of course, still totally stupid - but I did find myself thinking how much worse comparable events in JS have been for me over the years. What would have been easily an entire afternoon ended up taking 15 minutes - and a chunk of that was just double checking commands I'd long forgotten.

replies(3): >>42175501 #>>42175582 #>>42175642 #
abdisalan ◴[] No.42175501[source]
Hold on, you had to do binary surgery using an OpenSSL version from an old box you had? I salute the dedication.
replies(2): >>42175562 #>>42184842 #
1. getcrunk ◴[] No.42175562[source]
How exactly does one do that. Sounds exciting!
replies(4): >>42175654 #>>42175851 #>>42177438 #>>42182495 #
2. kaptainscarlet ◴[] No.42175654[source]
I think you copy the library file and add it to you load path
3. exe34 ◴[] No.42175851[source]
patchelf
replies(1): >>42176075 #
4. ian-g ◴[] No.42176075[source]
but don't forget to make sure your new path is fewer characters than the original one so you don't overwrite any of the library
5. pavel_lishin ◴[] No.42177438[source]
A sewing needle, a spare magnet, and a very steady hand.
6. wink ◴[] No.42182495[source]
Not the OP but what sometimes works is as easy as:

``` ldd your-binary ``` on the old host and then copy all the thing that is referenced, put into ./foo and then start like so on new host: `LD_LIBRARY_PATH=./foo ./your-binary`. (may include typos, from memory)

A great tool for this used to be https://github.com/intoli/exodus - not sure if it still works.

Disclaimer: Also please don't do this with network-facing services, security applies, etc.pp. but it's a good trick to know.

replies(1): >>42185145 #
7. Izkata ◴[] No.42185145[source]
I used it for something early this year, it was working then.