SoFinder is a powerful tool designed to help developers identify and collect all required shared libraries (.so
files) and their dependencies for running binaries that may not be fully supported on the current system. With SoFinder, you can leverage Docker and popular Linux distributions like Ubuntu and Arch Linux to locate and retrieve the exact shared libraries needed for your applications.
- Automated Library Discovery: Easily find and collect the exact
.so
files required for your binaries. - Comprehensive Dependency Management: Recursively identify and gather all dependent shared libraries.
- Multi-Distribution Support: Compatible with both Ubuntu and Arch Linux distributions.
- Architecture Flexibility: Supports
x86_64
andarm64
architectures. - Efficient Docker Integration: Manages Docker containers to facilitate library discovery and collection.
- Organized Output: Collect and store all dependencies in a specified directory for easy access and integration.
When running binaries that depend on specific shared libraries, missing dependencies can lead to runtime errors and hinder development. SoFinder automates the discovery and collection process, ensuring that all necessary .so
files and their dependencies are available, regardless of the host system's limitations. This tool simplifies your workflow, reduces errors, and enhances productivity by leveraging Docker to emulate different Linux environments.
- Docker: Ensure Docker is installed and running on your machine.
-
Clone the Repository:
git clone https://github.com/omar391/sofinder.git cd sofinder
-
Build the Project:
go build -o sofinder
./sofinder <so-file-names> [architecture: x86_64|arm64] [distro: ubuntu variant distro] [output-directory] [remove-container]
./sofinder lib1.so,lib2.so x86_64 ubuntu ./so_files true
In this example, SoFinder will:
- Identify and download
lib1.so
(andlib2.so
) and its dependencies. - Collect all necessary
.so
files in the specified output directory (./so_files
). - Optionally remove the Docker container after completion.
We welcome contributions from the community! Feel free to submit pull requests, report issues, or suggest enhancements. Together, we can make SoFinder even better.
This project is licensed under the MIT License. See the LICENSE file for details.