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 coursesNumber of courses found: 1...[george@banana stackskills-dl]$ ruby stackskills_dl.rb --helpUsage: 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>' |


