Fedora 27: Setup stackskills-dl
A couple of days ago we were asked to setup stackskills-dl
on a Fedora 27 (x64)
.
Apparently stackskills-dl
is a Ruby script that allows a registered user to download the StackSkills
tutorials for which the user has access to.
Following the instructions at https://github.com/yoonwaiyan/stackskills-dl are not enough to get the application running as the json gem
and the Ruby development
files appear to be missing from the filesystem.
Solution: Below are the steps we followed to setup stackskills-dl
and make it operational:
1 2 3 4 5 6 | sudo dnf install gem ruby-devel youtube-dl wget; gem install json; gem install bundler; git clone https: //github .com /yoonwaiyan/stackskills-dl .git; cd stackskills-dl/; bundle install ; |
After the above steps were completed, we were able to use stackskills-dl
from the clone/installation folder normally:
1 2 3 4 5 6 7 8 9 10 11 12 13 | [george@banana stackskills-dl]$ ruby stackskills_dl.rb -u "george@example.com" -p "e#rf54HTw3se!fe678f." -s https: //stackskills .com /courses/enrolled/007 ; Loaded login credentials from environment variables. Login Successfully. Finding https: //stackskills .com /courses/enrolled/007 from your list of courses Number of courses found: 1 ... [george@banana stackskills-dl]$ ruby stackskills_dl.rb --help Usage: ruby stackskills_dl.rb [options] -u, --email NAME Email -p, --password PASSWORD Password -c, --course COURSE_URL Course URL in ID. -s, --course-slug COURSE_SLUG Course URL in slug. |
With out the Ruby json gem
you would get the following error:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | [george@banana stackskills-dl]$ ruby stackskills_dl.rb --help; /usr/share/rubygems/rubygems/core_ext/kernel_require .rb:55: in `require': cannot load such file -- json (LoadError) from /usr/share/rubygems/rubygems/core_ext/kernel_require .rb:55: in `require' from /home/george/ .gem /ruby/2 .4.0 /gems/mime-types-2 .99.1 /lib/mime/types/loader .rb:226: in `load_from_json' from /home/george/ .gem /ruby/2 .4.0 /gems/mime-types-2 .99.1 /lib/mime/types/loader .rb:63: in `block in load_json' from /home/george/ .gem /ruby/2 .4.0 /gems/mime-types-2 .99.1 /lib/mime/types/loader .rb:62: in `each' from /home/george/ .gem /ruby/2 .4.0 /gems/mime-types-2 .99.1 /lib/mime/types/loader .rb:62: in `load_json' from /home/george/ .gem /ruby/2 .4.0 /gems/mime-types-2 .99.1 /lib/mime/types/loader .rb:88: in `load' from /home/george/ .gem /ruby/2 .4.0 /gems/mime-types-2 .99.1 /lib/mime/types/loader .rb:113: in `load' from /home/george/ .gem /ruby/2 .4.0 /gems/mime-types-2 .99.1 /lib/mime/types .rb:296: in `load_default_mime_types' from /home/george/ .gem /ruby/2 .4.0 /gems/mime-types-2 .99.1 /lib/mime/types .rb:323: in `<class:Types>' from /home/george/ .gem /ruby/2 .4.0 /gems/mime-types-2 .99.1 /lib/mime/types .rb:63: in `< top (required)>' from /usr/share/rubygems/rubygems/core_ext/kernel_require .rb:55: in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require .rb:55: in `require' from /home/george/ .gem /ruby/2 .4.0 /gems/mechanize-2 .7.4 /lib/mechanize/pluggable_parsers .rb:5: in `< top (required)>' from /usr/share/rubygems/rubygems/core_ext/kernel_require .rb:55: in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require .rb:55: in `require' from /home/george/ .gem /ruby/2 .4.0 /gems/mechanize-2 .7.4 /lib/mechanize .rb:1361: in `< top (required)>' from /usr/share/rubygems/rubygems/core_ext/kernel_require .rb:133: in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require .rb:133: in `rescue in require' from /usr/share/rubygems/rubygems/core_ext/kernel_require .rb:40: in `require' from /home/george/Videos/stackskills-dl/lib/course_finder .rb:1: in `< top (required)>' from /usr/share/rubygems/rubygems/core_ext/kernel_require .rb:55: in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require .rb:55: in `require' from stackskills_dl.rb:4: in `<main>' |