Giter Club home page Giter Club logo

nix-autobahn's Introduction

you are running nix/NixOS and have ever encountered the following problem?

./factorio
bash: ./factorio: No such file or directory

fear not, now there is nix-autobahn which will download necessary dependencies for you.

./nix-autobahn factorio --> Spawns a fhs shell with all needed shared dependencies to execute the binary
./nix-autobahn-ld factorio -> Spawns you inside a shell with NIX_LD_LIBRARY_PATH set to the needed dependencies
./nix-autobahn-find-libs factorio    --> Lists all libs needed for the binary
./nix-autobahn-fhs-shell             --> Spawns a fhs shell. Arguments are the packages to be available

Technical Description

This simple shell script collection allows you to download ELF binaries and use them right away! This is achieved by enumerating the shared library dependencies from the ELF header and then searching for the equivalent library in nixpkgs. This is done by querying nix-locate locally. To be able to use nix-locate, first, the index has to be build this is done by running nix-index and waiting 10-15 minutes.

Files

  • nix-autobahn-find-libs --> Prints out all required libraries by that binary
  • nix-autobahn-fhs-shell --> Spawns a fhsUserEnv nix shell with packages defined as args
  • nix-autobahn --> Combines the two scripts above to have an instant working nix-shell

Dependencies

alternatives

https://github.com/thiagokokada/nix-alien

nix-autobahn's People

Contributors

davhau avatar lassulus avatar qubasa avatar senchopens avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nix-autobahn's Issues

Seemingly unable to handle 32 bit library needs on 64-bit OS

I was attempting to use nix-autobahn to play the DRM free Humble release of 5d chess with multiverse time travel, after Factorio worked so well (thank you! it's genuinely super amazing that that works), but 5d chess needs at LEAST the 32 bit build of SDL2, if not all its libraries. Is there a possibility of a way for nix-autobahn to handle detecting or at least asking if it should try to get a different architecture's libraries? Steam-run works, but it would be nice to have this within nix-autobahn.

(ps, sorry for the initially blank issue, accidentally hit enter on my laptop midway thru typing the title)

Get rid of dependencies

Currently, having nix-locate is hard dependency of this software. Why don't you utilize a nix-shell together with a shell.nix to fetch all necessary dependencies?

Replace fzf for skim

I think skim is noticeably faster than fzf, but offers a very similar feature set. Replacing could potentially make things even faster!

Issues with balena etcher

Maybe this is a issue with the way balena etcher calls upon their dependencies but I figured i would post this here in case this is a issue with the project, I love this project by the way!

[spiderunderurbed@daspidercave:~/Desktop]$ ../nix-autobahn/nix-autobahn BalenaEtcher.AppImage
        not a dynamic executable
warning: unknown setting 'access-token'
/home/spiderunderurbed/Desktop/BalenaEtcher.AppImage: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory

[spiderunderurbed@daspidercave:~/Desktop]$ 

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.