Giter Site home page Giter Site logo

wsldl's Introduction

wsldl

General Purpose WSL Distribution Installer & Launcher

screenshot

Travis (.org) AppVeyor Github All Releases Gitter PRs Welcome License

💻Requirements

  • Windows 10 1709 Fall Creators Update 64bit or later.
  • Windows Subsystem for Linux feature is enabled.

📦Install with prebuilt rootfs

1. Download installer zip

Alpine Linux

Alpine Linux with Git-LFS and Sphinx (by binarylandscapes)

Arch Linux

Artix Linux (by hdk5)

CentOS

CentOS (by fbigun)

Clear Linux (by wight554)

Void Linux (glibc) (by am11)

Void Linux (musl-libc) (by am11)

2. Extract all files in zip file to same directory

3.Run exe to Extract rootfs and Register to WSL

Exe filename is using to the instance name to register. If you rename it, you can register with a different name.

🔧Install with any rootfs

2. Rename it for distribution name to register.

(Ex:Rename to Arch.exe if you want to use "Arch" for the Instance name)

3. Put your rootfs.tar.gz in same directory as exe (Installation directory)

4. Run exe to install. This process may take a few minutes.

Note: You can distribute your distribution including wsldl exe.

📝How-to-Use(for Installed Instance)

exe Usage

Usage :
    <no args>
      - Open a new shell with your default settings.

    run <command line>
      - Run the given command line in that distro. Inherit current directory.

    config [setting [value]]
      - `--default-user <user>`: Set the default user for this distro to <user>
      - `--default-uid <uid>`: Set the default user uid for this distro to <uid>
      - `--append-path <on|off>`: Switch of Append Windows PATH to $PATH
      - `--mount-drive <on|off>`: Switch of Mount drives

    get [setting]
      - `--default-uid`: Get the default user uid in this distro
      - `--append-path`: Get on/off status of Append Windows PATH to $PATH
      - `--mount-drive`: Get on/off status of Mount drives
      - `--lxuid`: Get LxUID key for this distro

    backup
      - Output backup.tar.gz to the current directory using tar command.
      
    clean
      - Uninstall the distro.

    help
      - Print this usage message.

Just Run exe

>{InstanceName}.exe
[root@PC-NAME user]#

Run with command line

>{InstanceName}.exe run uname -r
4.4.0-43-Microsoft

Change Default User(id command required)

>{InstanceName}.exe config --default-user user

>{InstanceName}.exe
[user@PC-NAME dir]$

How to uninstall instance

>{InstanceName}.exe clean

🛠How-to-Build

Windows

Visual Studio or Build Tools 2017+

Use Developer Command Prompt for Visual Studio or run these in the Windows Command Prompt

:: locate VS base installation path using vswhere
SET vswherePath=%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe
FOR /F "tokens=*" %i IN ('
      "%vswherePath%" -latest -prerelease -products *               ^
        -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 ^
        -property installationPath'
      ) DO SET vsBase=%i

:: initialize x64 build environment
CALL "%vsBase%\vc\Auxiliary\Build\vcvarsall.bat" x64

To compile Launcher.exe

cl /nologo /O2 /W4 /WX /Ob2 /Oi /Oy /Gs- /GF /Gy /Tc main.c /Fe:Launcher.exe Advapi32.lib Shell32.lib

Optionally, to add an icon to the exe, create and link a resource with

SET YourDistroName=Fedora

:: create resources
rc /nologo res\%YourDistroName%\res.rc

:: compile to %YourDistroName%.exe
cl /nologo /O2 /W4 /WX /Ob2 /Oi /Oy /Gs- /GF /Gy /Tc main.c /Fe:%YourDistroName%.exe ^
  Advapi32.lib Shell32.lib res\%YourDistroName%\res.res

MinGW

Install x86_64 version of MSYS2(https://www.msys2.org).

Run these commands in msys shell

$ pacman -S mingw-w64-x86_64-toolchain # install tool chain
$ gcc -std=c99 --static main.cpp -o Launcher.exe # compile main.c

Optionally, to add an icon to the exe, create and link a resource with

YourDistroName=Fedora
$ windres res/$YourDistroName/res.rc res.o # compile resource
$ gcc -std=c99 --static main.cpp -o Launcher.exe res.o # compile main.cpp

Linux (cross compile)

Install mingw-w64 toolchain include gcc-mingw-w64-x86-64.

Run this command in shell

 $ x86_64-w64-mingw32-gcc -std=c99 --static main.c -o Launcher.exe # compile main.c

📄License

MIT

Copyright (c) 2017-2019 yuk7

wsldl's People

Contributors

abelsromero avatar am11 avatar biswa96 avatar hdk5 avatar mmizutani avatar nvander1 avatar raulfpl avatar wight554 avatar yuk7 avatar

Watchers

 avatar  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.