Navigation
In this howto we install Mumble-Ruby into a new users´ context.
We use a Debian 'Wheezy' (stable), Ubuntu should work, too. Even Debian Squeeze (oldstable) does the job, if you install libopus0
and libopus-dev
from the backports.
Install the following dependencies as root or via sudo:
apt-get install curl libyaml-dev git libopus-dev build-essential zlib1g zlib1g-dev libssl-dev
As root or via sudo:
adduser botmaster
All relevant scripts will run with this user context.
From now on work as the new user:
su - botmaster
Thanks to [http://rvm.io RVM] (Ruby Version Manager) this howto runs on a Debian, regardless of the Ruby version.
Install the GPG key of rvm:
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
We need at least Ruby 1.9.x, here we use the latest stable version:
curl -L https://get.rvm.io | bash -s stable
toggle = left |title = Console output |titlestyle = background:palegreen;
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 184 100 184 0 0 282 0 --:--:-- --:--:-- --:--:-- 368 100 20511 100 20511 0 0 21614 0 --:--:-- --:--:-- --:--:-- 21614 Downloading https://github.com/wayneeseguin/rvm/archive/stable.tar.gz Installing RVM to /home/botmaster/.rvm/ Adding rvm PATH line to /home/botmaster/.profile /home/botmaster/.bashrc /home/botmaster/.zshrc. Adding rvm loading line to /home/botmaster/.bash_profile /home/botmaster/.zlogin. Installation of RVM in /home/botmaster/.rvm/ is almost complete: * To start using RVM you need to run `source /home/botmaster/.rvm/scripts/rvm` in all your open shell windows, in rare cases you need to reopen all shell windows. # botmaster, # # Thank you for using RVM! # We sincerely hope that RVM helps to make your life easier and more enjoyable!!! # # ~Wayne, Michal & team. In case of problems: http://rvm.io/help and https://twitter.com/rvm_io
source ~/.rvm/scripts/rvm rvm autolibs disable rvm install ruby --latest
Searching for binary rubies, this might take some time. Found remote file https://rvm.io/binaries/debian/7/x86_64/ruby-2.1.1.tar.bz2 ruby-2.1.1 - #configure ruby-2.1.1 - #download % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 23.0M 100 23.0M 0 0 2047k 0 0:00:11 0:00:11 --:--:-- 2379k ruby-2.1.1 - #validate archive ruby-2.1.1 - #extract ruby-2.1.1 - #validate binary ruby-2.1.1 - #setup ruby-2.1.1 - #making binaries executable. ruby-2.1.1 - #downloading rubygems-2.2.2 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 404k 100 404k 0 0 584k 0 --:--:-- --:--:-- --:--:-- 674k No checksum for downloaded archive, recording checksum in user configuration. ruby-2.1.1 - #extracting rubygems-2.2.2. ruby-2.1.1 - #removing old rubygems. ruby-2.1.1 - #installing rubygems-2.2.2.............. ruby-2.1.1 - #gemset created /home/botmaster/.rvm/gems/ruby-2.1.1@global ruby-2.1.1 - #importing gemset /home/botmaster/.rvm/gemsets/global.gems.. ruby-2.1.1 - #generating global wrappers. ruby-2.1.1 - #gemset created /home/botmaster/.rvm/gems/ruby-2.1.1 ruby-2.1.1 - #importing gemsetfile /home/botmaster/.rvm/gemsets/default.gems evaluated to empty gem list ruby-2.1.1 - #generating default wrappers.
Now setup the environment for Ruby:
rvm --create use @bots
ruby-2.1.1 - #gemset created /home/botmaster/.rvm/gems/ruby-2.1.1@bots ruby-2.1.1 - #generating bots wrappers. Using /home/botmaster/.rvm/gems/ruby-2.1.1 with gemset bots
git clone https://github.com/perrym5/mumble-ruby.git
Cloning into 'mumble-ruby'... remote: Counting objects: 240, done. remote: Compressing objects: 100% (138/138), done. remote: Total 240 (delta 118), reused 180 (delta 87) Receiving objects: 100% (240/240), 37.75 KiB, done. Resolving deltas: 100% (118/118), done.
cd mumble-ruby
ruby-2.1.1 - #gemset created /home/botmaster/.rvm/gems/ruby-2.1.1@mumble_ruby_gem ruby-2.1.1 - #generating mumble_ruby_gem wrappers.
rvm use @bots gem build mumble-ruby.gemspec
Using /home/botmaster/.rvm/gems/ruby-2.1.1 with gemset bots botmaster@debian:~/mumble-ruby$ gem build mumble-ruby.gemspec WARNING: licenses is empty, but is recommended. Use a license abbreviation from: http://opensource.org/licenses/alphabetical WARNING: open-ended dependency on activesupport (>= 0) is not recommended if activesupport is semantically versioned, use: add_runtime_dependency 'activesupport', '~> 0' WARNING: open-ended dependency on ruby_protobuf (>= 0) is not recommended if ruby_protobuf is semantically versioned, use: add_runtime_dependency 'ruby_protobuf', '~> 0' WARNING: open-ended dependency on hashie (>= 0) is not recommended if hashie is semantically versioned, use: add_runtime_dependency 'hashie', '~> 0' WARNING: open-ended dependency on opus-ruby (>= 0) is not recommended if opus-ruby is semantically versioned, use: add_runtime_dependency 'opus-ruby', '~> 0' WARNING: See http://guides.rubygems.org/specification-reference/ for help Successfully built RubyGem Name: mumble-ruby Version: 1.0.2 File: mumble-ruby-1.0.2.gem
rvm @bots do gem install mumble-ruby-*.gem
Fetching: atomic-1.1.15.gem (100%) Building native extensions. This could take a while... Successfully installed atomic-1.1.15 Fetching: thread_safe-0.2.0.gem (100%) Successfully installed thread_safe-0.2.0 Fetching: minitest-5.3.0.gem (100%) Successfully installed minitest-5.3.0 Fetching: tzinfo-1.1.0.gem (100%) Successfully installed tzinfo-1.1.0 Fetching: i18n-0.6.9.gem (100%) Successfully installed i18n-0.6.9 Fetching: activesupport-4.1.0.rc1.gem (100%) Successfully installed activesupport-4.1.0.rc1 Fetching: ruby_protobuf-0.4.11.gem (100%) Successfully installed ruby_protobuf-0.4.11 Fetching: hashie-2.0.5.gem (100%) Successfully installed hashie-2.0.5 Fetching: ffi-1.9.3.gem (100%) Building native extensions. This could take a while... Successfully installed ffi-1.9.3 Fetching: opus-ruby-0.0.1.gem (100%) Successfully installed opus-ruby-0.0.1 Successfully installed mumble-ruby-1.0.2 Parsing documentation for activesupport-4.1.0.rc1 Installing ri documentation for activesupport-4.1.0.rc1 Parsing documentation for atomic-1.1.15 Installing ri documentation for atomic-1.1.15 Parsing documentation for ffi-1.9.3 Installing ri documentation for ffi-1.9.3 Parsing documentation for hashie-2.0.5 Installing ri documentation for hashie-2.0.5 Parsing documentation for i18n-0.6.9 Installing ri documentation for i18n-0.6.9 Parsing documentation for minitest-5.3.0 Installing ri documentation for minitest-5.3.0 Parsing documentation for mumble-ruby-1.0.2 Installing ri documentation for mumble-ruby-1.0.2 Parsing documentation for opus-ruby-0.0.1 Installing ri documentation for opus-ruby-0.0.1 Parsing documentation for ruby_protobuf-0.4.11 Installing ri documentation for ruby_protobuf-0.4.11 Parsing documentation for thread_safe-0.2.0 Installing ri documentation for thread_safe-0.2.0 Parsing documentation for tzinfo-1.1.0 Installing ri documentation for tzinfo-1.1.0 Done installing documentation for activesupport, atomic, ffi, hashie, i18n, minitest, mumble-ruby, opus-ruby, ruby_protobuf, thread_safe, tzinfo after 29 seconds 11 gems installed
Now your Mumble-Ruby is operational :)
This is essential so that the correct environment is used for the bots. Execute both lines or add them to your start script:
source ~/.rvm/scripts/rvm rvm use @bots
Now download a test Ruby script, to test Mumble-Ruby; the script connects the bot to a server and shows a list of all channels on that server in your console.
wget https://github.com/Natenom/mumble-ruby-related/raw/master/scripts/mumble-ruby-test.rb -O /home/botmaster/mumble-ruby-test.rb
See the script here.
Now run the script:
ruby mumble-ruby-test.rb
{0=>#<Hashie::Mash channel_id=0 description_hash="\xBE\x06\x88\xDB\x9B$\xF6\x01\xCD\xF2\xC1\xDE~V\xDCXw\xDA\xEEb" name="ᎭᎪᎢᎬᎭᎾᎷ" position=0>, 1=>#<Hashie::Mash channel_id=1 name="AFK" parent=0 position=60>, 5=>#<Hashie::Mash channel_id=5 description="https://wiki.natenom.name/mumble/benutzerhandbuch/mumble/benutzerinterface?&#kanal_ziehen" name="Empfangshalle" parent=0 position=0>, 3=>#<Hashie::Mash channel_id=3 name="Halle der kaguBischen Ahnungslosigkeit" parent=0 position=0>, 4=>#<Hashie::Mash channel_id=4 description="<a href=\"http://mumble-django.org\"><span style=\"color:#0057ae\">http://mumble-django.org</span></a>" name="Mumble-Django rockt :)" parent=0 position=0>, 9=>#<Hashie::Mash channel_id=9 name="Ole und Gregor" parent=0 position=0>, 6=>#<Hashie::Mash channel_id=6 description="http://natenom.name" name="Zocken" parent=0 position=0>, 10=>#<Hashie::Mash channel_id=10 name="lala" parent=3 position=0>, 7=>#<Hashie::Mash channel_id=7 name="Privat" parent=6 position=0>}