title: J1 Starter tagline: Create your Linux environment in 15 minutes description: J1 Starter for the Linux environment

tags: [ Starter, Linux, Template ] index: [] categories: [ pages ]

permalink: /pages/public/start/downloads/linux_starter/ regenerate: false

resources: [ lightbox, carousel ] resource_options:

- toccer:
    collapseDepth:                    3
- masthead:
    slides:
      # Broadway Underground - still image
      - url:                          /assets/videos/headers/still/underground-broadway.png
        alt:                          Broadway Underground
        alignY:                       top
        animateFirst:                 false
      # Broadway Underground - FAYETTE ST, moved file to Github/LFS
      - url:                          https://github.com/jekyll-one/jekyll-one-lfs/raw/master/videos/underground-broadway.mp4
        alignY:                       0
        isVideo:                      true
        loop:                         true
        duration:                     12000
      # Broadway Underground - still image
      - url:                          /assets/videos/headers/still/underground-broadway.png
        alt:                          Broadway Underground
        alignY:                       top
        transitionDuration:           750
        transition:                   "push_left|push_right|cover_up|cover_down|fade|fadeInOut"

// NOTE: General Asciidoc page attributes settings // :page-liquid:

// Load Liquid procedures // ——————————————————————- {% capture set_env_entry_document %}themes/{{site.template.name}}/procedures/global/set_env_entry_document.proc{%endcapture%} {% capture set_image_block %}themes/{{site.template.name}}/procedures/global/set_image_block.proc{%endcapture%}

// Initialize entry document environmental attributes // ——————————————————————- {% include {{set_env_entry_document}} %}

// Load tags and urls // include::{includedir}/attributes.asciidoc include::{includedir}/attributes.asciidoc include::{includedir}/attributes.asciidoc

// Additional Asciidoc page attributes goes here //

You work on Linux, most of the tools needed for developing a Jekyll Web are already installed or if missing quite easy to install. No wonder, Linux support developers at it's best.

Creating a fully equipped Jekyll developing enviroment may take a while anyway. If you don't want to mixup already installed applications like Python, Ruby or NodeJS on your existing OS, you can go for J1 Quickstart.

And you're done in 15 minutes ..

Quickstarter packages

All the tools and their environments are localized and isolated to the application folder of the Quickstarter package and should not interfere with any already of the installed programs and their resources. Simply by setting some environment variables, the system you've prepared already for your (Jekyll) Development Environment will be left untouched.

All Quickstarter packages contain the following packages:

Additionally, some selected addons are packed for faster setup repectively improved productivity:

NOTE: Quickstarters for all platforms have very the same layout and most of the applications packed are the same (in terms of their versions). If you work on Windows, the working environment feels the same as if you are on MacOS or Linux. As a plus, if you go for a Quickstarter (first), the beginner's documentation and tutorials will be easier to read and you can immediately follow what is presented and catch faster the workflows used.

In short: for the very first steps exploring the wonderful world of creating web sites using Jekyll and J1, the Quickstarter will be helpfull.

It's on you.

Download a Quickstarter

Find your platform and version for the J1 Quickstarter package you need with the following table:

include::{includedir}/tables/100_quickstart_installation_packages.asciidoc[]

System requirements

For all platforms, a Intel-based system is required. The minimum hardware you'll need:

NOTE: For many tasks (NPM scripts), parallel processing is used to speed up the build processes. This cause a higher memory usage. Make sure the system hardware (or the virtual machine) used meets the minimal system requirements.

Softare requirements

lorem:sentences

source, sh

# yum groupinstall “Development Tools”


lorem:sentences

source, sh

# yum install -y zlib zlib-devel openssl openssl-devel dbm dbm-devel gdbm gdbm-devel readline readline-devel


Install a Quickstarter

Installing a Quickstarter on all platforms is quite easy. Typically, a Quickstarter is used under non-priviliged accounts. Therefor, the installation is done using an non-priviliged user, *no root* access is needed for Unix-like system as MacOS or Linux.

Install on Linux

Installing the Quickstarter on Unix-like platforms is simple. The package is a simple *tar ball* that can be extracted elswhere into any arbitrary folder of your choice. BUT: the package should never be installed as root - use an non-priviliged user, your personal account for example.

You can install J1 Quickstart in any folder of your choice but you should *not use* a folder that contains spaces. This may cause unforeseeable failures accessing files and folder by some of the components, tools or 3rd party libraries of ruby or python. On other hand, typing or reading folder names having spaces like */this/is/my \ folder \ having \ spaces/* is not fun.

The tar ball is packed relatively to the folder j1_quickstart. In other words: the tar ball contains a folder j1_quickstart already (to prevent mesh up files in the parent folder).

source, sh

$ mkdir -p /path/to/parent_directory $ tar -xzf j1_quickstart_setup_en_linux_generic_x86_64.tgz -C /path/to/parent_directory


TIP: For /path/to/parent_directory e.g. you can use your user *home directory* like: *$HOME/j1_quickstart* to install the Quickstarter.

Your J1 Quickstart package is in place. What needs to be done next? Go for <<setup_on_unix>>, the chapter below.

[setup_on_unix]

Setup the environment

Only two steps are needed for Linux platforms to setup your environment completely. Open a simple terminal (console) and change (cd) to the Quickstarter installation folder.

The two steps for the *very first* start are:

. set the quickstarter environment . initialize J1 Quickstart for the first use

To set the proper environment, run the helper script set_env out of the etc folder (run the script dotted, so-called sourced) to set some environment variables needed with your current shell. You'll need some more shells - open at 2 additional console (shell) sessions the same way (dont't forget to source your shell by running the set_env script!).

Go for one of them and run:

source, sh

$ . ./etc/set_env


The helper j1init supports you to do some very basic tasks with the the Quickstarter. Run the helper j1init with the option help or he to see more details what j1init can do:

.Options of the helper script j1init

source, sh

$ j1init he

Usage: j1init {all|check|status|print-env}
Usage: j1init {bundle-install|bundle-test|bundle-clean|bundle-remove}
Usage: j1init {gems-remove}
Usage: j1init {clean-log|clean-force}
Usage: j1init {help}

             all|al:   (Re-)Initilize the Quickstarter. Compiles and
                       installs Ruby and all Rubies needed.
                       Useful only for setup. Be carefull using this option!
           check|ck:   Run sanity checks for all J1 Quickstart components
          status|st:   Display state of all Quickstarter deamons (RUNNING|STOPPED)
       print-env|ev:   Display current environment
  bundle-install|bi:   Install a bundle from current path
     bundle-test|bt:   Integrity tests of a bundle from current path
    bundle-clean|bc:   Delete all unused (older) gem referenced by a bundle
                       from current path. Be carefull using this option!
   bundle-remove|br:   Delete all gem referenced by a bundle from current path
                       Be carefull using this option!
     gems-remove|gr:   Delete ALL non-default gem from the system.
                       Be carefull using this option!
       clean-log|cl:   Delete all log files from ~/log folder
     clean-force|cf:   Runs gems-remove + clean-log + delete all files
                       from ~/var folder. Useful only for factory resets!
            help|he:   Prints this help

To display your current environment, run:

source, sh

$ j1init ev


.Environment displayed by j1init

source, sh

j1init: found current quickstarter environment [ OK ] # ——————————————————————– # # Current quickstarter environment settings: # # GEM_HOME /home/xxxx/j1_quickstart/ruby/lib/ruby/gems/2.3.0 # NGINX_BIN /home/xxxx/j1_quickstart/nginx/bin # GEM_BIN /home/xxxx/j1_quickstart/ruby/lib/ruby/gems/2.3.0/bin # OPENSSL_HOME /home/xxxx/j1_quickstart/openSSL # NGINX_HOME /home/xxxx/j1_quickstart/nginx # OPENSSL_BIN /home/xxxx/j1_quickstart/openSSL/bin # PYTHON_LIB /home/xxxx/j1_quickstart/python/lib # PYTHON_BIN /home/xxxx/j1_quickstart/python/bin # NODE_BIN /home/xxxx/j1_quickstart/nodejs/bin # PYTHONHOME /home/xxxx/j1_quickstart/python # RUBY_HOME /home/xxxx/j1_quickstart/ruby # OPENSSL_CONF /home/xxxx/j1_quickstart/openSSL/openssl.cnf # J1_HOME /home/xxxx/j1_quickstart # RUBY_BIN /home/xxxx/j1_quickstart/ruby/bin # NODE_MOD_BIN /home/xxxx/j1_quickstart/nodejs/lib/node_modules/.bin # PYTHON_HOME /home/xxxx/j1_quickstart/python # NODE_HOME /home/xxxx/j1_quickstart/nodejs # # ——————————————————————–


The helper j1init support some simple sanity checks to check the integrity of the Quickstarter installed. Run a first check by:

source, sh

$ j1init ck


You'll find that some checks are passed, but overall the integrity checks are FAILED. For good reasons. The environment ist set and some of the pre-installed applications are checked successful (PASSED).

.check results displayed by j1init

source, sh

Status for quickstart: check environment [ PASSED ] Status for quickstart: checking python executeable [ PASSED ] Status for quickstart: checking node executeable [ PASSED ] Status for quickstart: checking npm executeable [ PASSED ] Status for quickstart: no ruby executeable found [ FAILED ] Status for quickstart: no bundler executeable found [ FAILED ] Status for quickstart: no gem executeable found [ FAILED ] Status for quickstart: integrity checks [ FAILED ]


Create a fresh RUBY

But what is missing? All Ruby has test failed! For another good reason. There is (currently) no Ruby in place.

The most boring step is the initializatopn part: a fresh Ruby will be build and installed for your platform for best performance and stability. But compiling a fresh Ruby will take a while - anyway it is fully automated. Except the coffee you may need meanwhile :) …

Development Packages

sudo apt-get install -y gcc g++ make

sudo apt-get install -y expat libxml2-dev libxslt1-dev libffi-dev libpng12-dev zlibc zlib1g zlib1g-dev libbz2-dev libgdbm-dev libssl-dev libreadline-dev libncurses5-dev

sudo yum install -y expat libxml2-dev libxslt1-dev libffi-dev libpng12-dev zlibc zlib1g zlib1g-dev libbz2-dev libgdbm-dev libssl-dev libreadline-dev libncurses5-dev

Building Ruby

Start the initialization by running:

source, sh

$ j1init al


and the setup phase starts by an question - you see something like this:

source, sh

This will RESET and (RE-)INSTALL the J1 Quickstart installation … Are really you sure? (y/n)?


To start building you Ruby for the new Quickstarter, answer (**y**es). The setup phase starts immediately. You see something like this:

source, sh

# Found your Quickstarter installed at: /home/xxxx/j1_quickstart
#
# Platform detected as: linux.
# Platform is supported. Continue processing ...
#
# Compiling and installing Ruby. This will take a while :|
# Have a break this time :)
#
# Unzip Ruby sources to: /home/xxxx/j1_quickstart/_ruby_src_extracted ...
# Unzip of Ruby sources finished successful.
#
# Prepare (configure) Ruby 2.3.4 for compilation ...
# Ruby 2.3.4 configuration successful.
#
# Compile Ruby 2.3.4 ...
# Ruby 2.3.4 compilation successful.
...

The setup phase will take up to 15 minutes, depending on the performance the hardware you're using. To have a look what's going on under the hood, you can monitor the setup process by tailing the Quickstarters logfile:

source, sh

$ tail -f ./log/j1quickstart.log


All main steps of the initialization phase are logged to j1quickstart.log like:

.Logfile j1quickstart.log

source, sh

2017-08-11 13:16:07
INFO
j1init
Start initializing J1 QuickStart
2017-08-11 13:16:07
INFO
j1init

[unzip ruby sources to: …

2017-08-11 13:16:08
INFO
j1init
configure ruby 2.3.4 for compilation
2017-08-11 13:18:17
INFO
j1init
compile ruby 2.3.4
2017-08-11 13:25:18
INFO
j1init
install ruby 2.3.4
2017-08-11 13:25:51
INFO
j1init
Initializing j1init finished
2017-08-11 13:25:51
INFO
j1init
bundle from … installed succesfully
2017-08-11 13:25:51
INFO
j1init
J1 Quickstarter init finished

If your setup reaches the line *J1 Quickstarter init finished* your done! All has been prepared for you by the setup phase. You should check, if the sytem is now set correctly. Re-run the *integrity check* again:

source, sh

$ j1init ck


You see something like this:

source, sh

Status for quickstart: check environment [ PASSED ] Status for quickstart: checking python executeable [ PASSED ] Status for quickstart: checking node executeable [ PASSED ] Status for quickstart: checking npm executeable [ PASSED ] Status for quickstart: checking ruby executeable [ PASSED ] Status for quickstart: checking bundler executeable [ PASSED ] Status for quickstart: checking gem executeable [ PASSED ] Status for quickstart: integrity checks [ PASSED ]


Welcome this stage. You can be sure that all went fine. Puuh, a lot stuff was done. Anyway, is is done!

NOTE: All commands of the Quickstarter using a prefix of j1 to not interfere with programs the same name. For example j1nginx is a helper to manage and control the Web Server Nginx. Because the name of the executeable of the Web Server is nginx, the correspondend helper j1nginx is prepended by j1.

You are veeery close to your new, fresh Jekyll Web. Go for the final step <<first-jekyll-web>> below to create one!

Go, go, go!

[first-jekyll-web]

Create a first Jekyll Web

J1 Template is a so-called gem-based Template for Jekyll. What a hell does that mean? The template J1 is a RubyGem! And you've already installed that Gem for your work. No additional installing steps needed. And better: all gem-based templates are updated automatically if your bundle (the set of Rubies you're using for a project) gets updated.

Use the current shell you've started the initialization phase earlier and run:

source, sh

gem list ^j1_tem –local


You#ll get something like this


*** LOCAL GEMS ***
j1_template_mde (2019.4.0)

J1 Template comes with a skin styled by the Bootstrap V4 framework in a special flavour: MDE. That means **M**aterial **D**esign **E**lements. That's what billion of people know and use with Android mobiles each and every day. And - yes it is: Google *Material Design* for Jekyll Webs. That sounds cool - no it is hot, hot stuff!.

Now the trilling part. How long will (should) it take to create a well equipped starter Web, based on Bootstrap and Googles Material Design?

Fire up your Web in a minute!

Open an another shell and move to the to *web root* directory www of the Quichstarter installation:

source, sh

cd $J1_HOME/www


NOTE: Remember, users on MacOS and Linux needs to run set_env for all shells used to work with Jekyll and J1 first.

Now, let's rock your fresh, new Web. J1 Template comes with a little CLI included to manage base tasks more ease. No surprise, the CLI for J1 Template is: j1. One of the tasks supported by the j1 is to create a Web (scaffold) by the subcommand generate for a so-called Starter Web.

Run in the shell you've opened the steps to go:

. generate a starter (scaffold) . change to the web root folder . fire up jekyll (as a server)

source, sh

j1 generate starter cd starter j1server


You've fired up Jekyll to build and serve your new Web. Someting like below is wrtten to your shell:


Configuration file: / .. /www/starter/_config.yml
            Source: / .. /www/starter
      Destination:  / .. /www/starter/_site
Incremental build: enabled
      Generating...
                    done in 3.456 seconds.
Auto-regeneration: enabled for '/ .. /www/starter'
    Server address: http://localhost:33333/
  Server running... press ctrl-c to stop.

Haha, your done! Your Web is ready to use. The line *Server address: localhost:33333/* gives the URL of the Web created and served. For quick access, Jekyll supports serving a Web using the build-in server Webrick.

To start your default Web browser for this Web, run from command line:

source, sh

open localhost:33333/


Voila, your first Web is alive!

Some interesting parts and features of J1 Template are prepared to explore. Have a look, surfe the Web for pages, for already prepared examples for you.

TIP: Jekyll, respectively the CLI jekyll can be stopped by typing <CTRL> + <C> in the console or shell Jekyll has been started.

Have fun exploring your first Jekyll Web!

What's next

It depends on you, friends! If you like what Jekyll and J1 doing, or can do for you, the Kickstarter *Your Web in a Day* should the choice for going further.

Yeah, a day sound a lot! What is a Kickstarter?

Simply spoken a tutorial. A very practical way to learn new things. A good mix of theory and practical work. At the end you'll have achived a lot. A really a good base for going further. You'll learn a bunch you should know in terms of Web technologies, Jekyll, J1 and how they can be used - without to be a specialist. And: all examples of *Your Web in a Day* are designed for *real world* usage, a good base for the Web you have on your minds.

Or you experienced, the Jekyll way is not the best for your requirements. That will happen. That's not a desaster, a lot of of other ways for your success are open other ways. What decision you may have made: it's based on knowlegde. Not something guessed. That's important. For you and for the J1 team as well.

You're welcome for a journey, a good day off exploring interesting places in the world of Jekyll and J1. The Kickstarter offers a lot more about what a Quickstarter can do, introduce you in using Jekyll, makes you confident using the J1 Template for your personal Web.

In short: the Kickstarter supports you to create and manage Jekyll Webs efficently. The tutorial helps you to modify the configuration of a Jekyll Web, makes you familiar using the template system of J1, modify existing pages and explains how to create new pages and blogs (articles) for your personal needs.

Interested? The doors are open at: {web_in_a_day}[Your Web in a Day, window=“_blank”].

Happy Jekylling!