Mumble-Ruby installieren
In dieser Anleitung wird davon ausgegangen, dass man Mumble-Ruby in ein eigenes Benutzerkonto installiert, in dem vorher nichts mit Ruby gemacht wurde.
Es wird Debian 'Wheezy' Stable verwendet, Ubuntu sollte auch funktionieren. Debian Squeeze funktioniert auch, wenn man libopus0
und libopus-dev
aus den Backports installiert.
Abhängigkeiten im Sytem
Folgende Abhängigkeiten müssen als root oder mit sudo installiert werden:
apt-get install curl libyaml-dev git libopus-dev build-essential zlib1g zlib1g-dev libssl-dev
Benutzer hinzufügen
Als root oder mit sudo:
adduser botmaster
Im Kontext dieses Benutzers werden sämtliche Scripte und für die Bots relevante Dinge laufen.
Ruby installieren und einrichten mittels RVM
Ab hier arbeitet man nur noch mit einem eigenen Benutzer:
su - botmaster
Dank RVM (Ruby Version Manager) läuft dieser Aufbau auf einem Debian, unabhängig von den Ruby-Paketen der Distribution.
Zuerst muss man den GPG-Schlüssel von rvm holen und aktivieren:
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
Damit Mumble-Ruby läuft, benötigt man Ruby ab Version 1.9.x; wir nutzen hier die aktuelle Version 2.1.1:
curl -L https://get.rvm.io | bash -s stable
Ausgabe (anklicken zum Anzeigen):
Ausgabe (anklicken zum Anzeigen):
% 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: https://rvm.io/help and https://twitter.com/rvm_io
source ~/.rvm/scripts/rvm
rvm autolibs disable
rvm install ruby --latest
Ausgabe (anklicken zum Anzeigen):
Ausgabe (anklicken zum Anzeigen):
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.
Ruby Umgebung einrichten
Nun richtet man eine Umgebung für die Bots ein:
rvm --create use @bots
Ausgabe (anklicken zum Anzeigen):
Ausgabe (anklicken zum Anzeigen):
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
Mumble-Ruby installieren
git clone https://github.com/perrym5/mumble-ruby.git
Ausgabe (anklicken zum Anzeigen):
Ausgabe (anklicken zum Anzeigen):
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
Ausgabe (anklicken zum Anzeigen):
Ausgabe (anklicken zum Anzeigen):
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
Ausgabe (anklicken zum Anzeigen):
Ausgabe (anklicken zum Anzeigen):
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:
https://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 https://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
Ausgabe (anklicken zum Anzeigen):
Ausgabe (anklicken zum Anzeigen):
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
Damit ist mumble-ruby fertig und einsatzbereit.
Nach jedem Login oder beim Start von mumble-ruby in Scripten Folgendes ausführen
Damit die richtige Umgebung genutzt wird, muss man in Zukunft nach jedem Login bzw. vor jedem Start eines Scripts, welches Mumble-Ruby verwendet, die beiden Zeilen ausführen oder alternativ in ein entsprechendes Startscript einfügen:
source ~/.rvm/scripts/rvm
rvm use @bots
Mumble-Ruby ausprobieren
Nun lädt man sich ein Ruby-Script herunter, um Mumble-Ruby zu testen; der Bot betritt dabei nur kurz den Server und zeigt alle Kanäle des Servers in der Konsole an.
wget https://github.com/Natenom/mumble-ruby-related/raw/master/scripts/mumble-ruby-test.rb -O ~/mumble-ruby-test.rb
Ansehen kann man sich das Script hier.
Nun führt man das Script aus:
cd
ruby mumble-ruby-test.rb
Ausgabe des Scripts (anklicken zum Anzeigen):
Ausgabe des Scripts (anklicken zum Anzeigen):
{0=>#<Hashie::Mash channel_id=0 description_hash="\xBE\x06\x88\xDB\x9B$\xF6\x01\xCD\xF2\xC1\xDE~V\xDCXw\xDA\xEEb" name="Lala" position=0>, 1=>#<Hashie::Mash channel_id=1 name="AFK" parent=0 position=60>, 5=>#<Hashie::Mash channel_id=5 description="lala" 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=\"https://domain.tld\"><span style=\"color:#0057ae\">https://domain.tld</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="https://domain.tld" 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>}
Bots mit Mumble-Ruby
Nun kann man z. B. die folgende Anleitung nutzen, um Bots mittels Mumble-Ruby zur Verfügung zu stellen, siehe hier.