Natenoms Wiki

Weil Teilen Spaß macht :)

Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

Übersetzungen dieser Seite:

Navigation



Lizenz dieses Wikis
Über dieses Wiki
Feed des Wikis
Impressum


Was gerade in meinem Blog geschieht:

mumble:clienten_und_projekte:mumble-ruby:installation

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.

mumble/clienten_und_projekte/mumble-ruby/installation.txt · Zuletzt geändert: 2017/11/12 10:14 von Natenom