Git Product home page Git Product logo

MagLev

Build Status: <img src=“https://travis-ci.org/MagLev/maglev.png?branch=master” alt=“Build Status” />

Minimum Requirements

  • 64-bit hardware. There are no plans for a 32-bit version.

  • 64-bit Linux, Mac OS X, or Solaris X86 operating system

  • a version of ruby and rake to use during installation

  • root access so you can increase default shared memory settings (only during initial install)

Install MagLev

There are several ways to install MagLev:

  • Install from GitHub

  • Install with Ruby Version Manager (RVM)

  • Install with ruby-build/rbenv

  • Use the installer

Install from GitHub

This version is best for MagLev contributors and for developers who want to live on the bleeding edge or use git functionality. It can be less stable than the .tar.gz version.

Create a new directory on a local (not NFS) file system to hold the MagLev source tree and other files. Change to that directory, then:

  1. Clone the MagLev github repository

    git clone git://github.com/MagLev/maglev.git
  2. Install the VM. If this is the first time you’re installing MagLev, run:

    ./install.sh

    If you’ve already run installMaglev.sh on the machine, then you can use the update script:

    ./update.sh

To use MagLev, you need to run install.sh at least once. After that, every time you git pull, you need to run update.sh to ensure you have the corresponding GemStone 3.x binaries. Otherwise, you might get version skew that prevents MagLev from running correctly. Watch @MagLev for any ‘git only’ updates, but if you’re more than one update behind you still might need to run update.sh. You don’t need to know a version number to install. The installer/updater figures that out from the version.txt file.

You’ll have all the functionality of git, but unless you create a new clone for each release, you may be unable to revert to an earlier version. Why? The install/update script creates a new copy of the MagLev data repository including persistent kernel code. The scripts make one level of backup, but we are not providing migration scripts.

Install with Ruby Version Manager (RVM)

RVM is useful if you want to compare behavior of various Ruby implementations or versions of MagLev. Install using:

rvm install maglev

See the rvm home page for details of using RVM.

RVM will automatically start a MagLev server when you rvm use maglev. That server is left running if you rvm use any_other_Ruby.

To stop your MagLev server:

rvm use maglev
maglev stop

Note: maglev stop will only stop the version of MagLev currently in use. If you’re using more than one, you’ll have to maglev stop each of them – e.g.

rvm use maglev-1.0.0
maglev stop
rvm use maglev-head
maglev stop

ProTip: To kill all the MagLev servers rather than shut them down gracefully, run ps -ef | grep /sys/stoned and kill the stoned processes that show up. It takes a short time before they shut down, as they do a bit of cleanup first.

Note: When running rake from MagLev, you cannot perform tasks which affect MagLev itself, like rake maglev:stop. You have to use the bin/maglev shell script instead.

Install with ruby-build/rbenv

ruby-build is a plugin for rbenv that compiles and installs different Ruby implementations on Unix-like systems. rbenv lets you switch among different implementations of Ruby easily.

You can install MagLev with rbenv:

rbenv install maglev-1.0.0

or you can use ruby-build to install MagLev standalone:

ruby-build maglev-1.0.0 ~/local/maglev

Note: Change ~/local/maglev to wherever you want MagLev installed.

ruby-build basically runs install.sh with some friendly output.

You will have to start and stop the MagLev server using

maglev start
maglev stop

The ProTip above for RVM still applies.

Install a specific version of MagLev from a .tar.gz archive

  1. Download and unzip MagLev-installer.zip

  2. Run

    ./installMaglev.sh [VERSION]

    Where VERSION is the specific MagLev revsion you wish to install, e.g. 1.0.0

    installMaglev.sh runs one-time machine checks and configuration that ensure your hardware will run MagLev. These mostly relate to shared memory settings. It’s safe to run multiple times and it won’t overwrite things it’s already done.

The installer is somewhat verbose. That’s so you can more easily debug installation problems.

Note: Reverting to an older version is as simple as stopping MagLev, changing $MAGLEV_HOME to point to the prior version, and restarting.

MagLev Engineering Team's Projects

007 icon 007

GemStone/S 007 Benchmark from 1994

bcrypt-ruby icon bcrypt-ruby

bcrypt-ruby is a Ruby binding for the OpenBSD bcrypt() password hashing algorithm, allowing you to easily store a secure hash of your users' passwords.

builder icon builder

A set of scripts to build Pharo images with Hudson

discount icon discount

My C implementation of John Gruber's Markdown markup language

eventmachine icon eventmachine

EventMachine: fast, simple event-processing library for Ruby programs

json icon json

JSON implementation for Ruby

linenoise icon linenoise

A small self-contained alternative to readline and libedit

liquid icon liquid

Liquid markup language. Safe, customer facing template language for flexible web apps.

maglev icon maglev

GemStone Maglev Ruby Repository

mspec icon mspec

RSpec-syntax compatible framework for RubySpecs

nokogiri icon nokogiri

Nokogiri (鋸) is an HTML, XML, SAX, and Reader parser with XPath and CSS selector support.

rdiscount icon rdiscount

Discount (For Ruby) Implementation of John Gruber's Markdown

retwis-rb icon retwis-rb

Port of redis example twitter app to Ruby and Sinatra

rubyspec icon rubyspec

Executable specification for the Ruby programming language using RSpec syntax.

rvm icon rvm

Ruby enVironment (Version) Manager ( rvm )

seashell icon seashell

Capistrano recipes for deploying seaside applications.

tesla icon tesla

MagLev niceties like models... and signs

webtools icon webtools

Sinatra app to explore Ruby code in Maglev

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.