Coder Social home page Coder Social logo

minos-static's Introduction

About

Build Status

Static linking is a technique where all the dependencies of a program are copied into the executable image, this requires extra disk space and memory (multiple copies of the same dependency could be located in several programs) but helps with portability and ease of usage, just download the binary and run it. Dynamic linking on the other hand is accomplished by placing only a reference of a sharable library in the executable. Actual linking with the library routines does not occur until the image is run, when both the executable and the library are placed in memory. An advantage of dynamic linking is that multiple programs can share a single copy of the library which saves space and allows to provide security updates efficiently.

On Linux, most distributions use dynamic linking because of the above advantages, however at the same time that is also the cause of being binary incompatible with others, or even with themselves in different releases. Since dynamic linking requires a strict management of global libraries most Linux package systems require administration privileges to install new software and don't allow to install several versions of the same application. With static linking there is no need for special privileges unless it's desired to place the static binary in a global context and it's possible to have several versions of the same program without conflicts.

Unfortunately, currently static linking on Linux is hard, in most cases -static isn't enough, and the usage of special functions (such as gethostbyname, getpwnam_r, etc) and other referenced content (such as terminfo files) doesn't help, even glibc size can discourage the creation of such files. If you want to compile your own static binaries chances are that you'll require to patch your desired software and its dependencies and link them against an alternative libc implementation, such dietlibc, uclibc or musl. This repository aim to fix that. By compiling meta-recipes and publish them to http://s.minos.io, the process can be reduced to:

$ static-get tmux
tmux-1.9a.tar.xz

There are more than 1000 packages and the list is growing constantly, a verbose list of all of them can be retrieved with:

$ static-get --search

Recipes

static-get builds on top of several amazing projects, as such, it's desirable to report to them when appropiated or to its minos deltas when in doubt.

New recipes are welcome =)!

Mirroring

static-get hasn't been designed to syncronizate data between servers, if you're intested in mirroring all the archive, please use one of the following methods:

  • rsync -azvL --delete rsync://s.minos.io/mirror/ /usr/local/linux-static-mirror

The recipes are run by minos-sync-bot and sync once every day.

minos-static's People

Contributors

climbthestairs avatar divinity76 avatar haletom avatar javier-lopez avatar maxpeal avatar nguyenmp avatar the-djdj avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.