Freezer copies a binary and its dynamic libraries to a directory so that it can be run or deployed independently of the operating system. The files can also be containerized.
Download the binary from release page.
For example, to freeze the binary /usr/sbin/conntrack run the following command:
freezer freeze-binary /usr/sbin/conntrack /tmp/freezer
This generates following files in the target directory /tmp/freezer:
/tmp/freezer/
├── conntrack
├── bin
│ └── conntrack
└── lib
├── ld-linux-x86-64.so.2
├── libc.so.6
├── libmnl.so.0
├── libnetfilter_conntrack.so.3
└── libnfnetlink.so.0
By calling the program /tmp/freezer/conntrack it will actually run /tmp/freezer/bin/conntrack and it will load its dynamic libraries from /tmp/freezer/lib/.
To build from source code you need make and Docker, then run the following commands:
git clone [email protected]:darxkies/freezer.git
cd freezer
make
The commands generate the binary freezer in the current directory.