How to install Juno from the command line?

I am trying to build a docker image with Juno pre-installed.

However, after adding the line

RUN apm install uber-juno

and when I run Atom, it will show the usually, “Juno: Installing Atom packages” pop-ups and it is quite a few minutes before the setup process is complete.

I wonder if there is a way to do all those in the command-line so that the first time I open Juno, it’s already set up?

I also need to answer Yes to the question “Julia-Client: Open Juno-specific panes on startup?”.

You can manually install packages that uber-juno installs instead:

apm install julia-client
apm install ink

and optionally

apm install latex-completions
apm install indent-detective
apm install hyperclick
apm install tool-bar
1 Like

I found this page to be helpful http://docs.junolab.org/latest/devdocs/dev_install/

Just install the packages that uber-juno does the trick for me except answering Yes to the question. But that should be left to the user, I just need a way to remember that preference once set! Probably by mounting a folder that serves as the config folder.

add the below to the Dockerfile is helpful

RUN apm install language-julia && \
  apm install julia-client && \ 
  apm install ink && \
  julia -e "using Pkg; pkg\"add Atom Juno\"; pkg \"precompile\""

for this you can

apm config set "julia-client.uiOptions.layouts.openDefaultPanesOnStartUp" false
2 Likes

Nice. How did you find out? Did you read the code for Juno?

Looking for a way to generalise this so can be done more easily for ppl reading this post.

Because I’m a currently active developer of Juno ?
I’m familiar with those layout stuff since I made those configs by myself.

But you can always read code of Juno – atom-julia-client and Atom.jl keep most things.

1 Like

Ok. One more question if I may :slight_smile:

How do I externalise the Juno settings? E.g. if I want to persist the settings across docker sessions (docker deletes everything after run).

Is there like a config file taht I need to mount from my local drive? Where would that config/setting file be located? How do I point Juno to that config file?

This might be an Atom questoin rather than a Juno question. But when I am done with this I will release this image so other Julia users can just docker run juno to enjoy the benefits of Juno. Thanks in advance.

1 Like

yes, this is right. Juno just uses atom’s global config settings which is usually located in ~/.atom/config.cson (you can see its manual)
Also you can specify which .atom directory you want to refer to via setting ATOM_HOME env variable

1 Like

After adding these lines to Docker it runs great, but the toolbar doesn’t show.


RUN apm install language-julia && \
  apm install julia-client && \
  apm install ink && \
  apm install latex-completions && \
  apm install indent-detective && \
  apm install hyperclick && \
  apm install tool-bar  

RUN julia -e "using Pkg; pkg\"add Atom Juno\"; pkg\"precompile\""

RUN apm config set "julia-client.uiOptions.layouts.openDefaultPanesOnStartUp" true

And I still get this message.

image

You can do:

RUN apm config set "julia-client.uiOptions.enableToolBar" true
RUN apm config set "julia-client.firstBoot" false

(the appearance of the tool-bar may need more tweaks if you want the default style that uber-juno sets automatically)

for other settings see https://github.com/JunoLab/atom-julia-client/blob/master/lib/package/config.coffee

1 Like

Running these have no impact at all. I am running root because it’s inside docker. Could that be the issue?

I can see that updating the settings through the GUI updates the “~/.atom/config.cson” file but apm config set “julia-client.firstBoot” false has no impact.

I still get the same dialog boxes and no toolbar

Update
I see that ~/.atom/.apmrc does receive the updates but those seem to be used by Juno. I see these 3 lines in .apmrc

julia-client.uiOptions.layouts.openDefaultPanesOnStartUp=true
julia-client.uiOptions.enableToolBar=true
julia-client.firstBoot=false

I just tried the below commands in normal Ubuntu (i.e. no docker) and they don’t have an impact either

apm config set "julia-client.uiOptions.enableToolBar" true

Yeah, apm config set doesn’t do what you want (you can use that to configure apm itself, but not Atom). I’d suggest either mounting the config file from the host or putting something like

RUN echo '
"*":
  "julia-client":
    firstBoot: false
    uiOptions:
      enableToolBar: true
      layouts:
        openDefaultPanesOnStartUp: true
' >> config.cson

into your dockerfile.

1 Like

@xiaodai ah sorry for the wrong info. I really misunderstood what apm config does.

2 Likes

This works great except the toolbar is now on top instead of on the side. How to fix this? It’s in UI options .

Update*

Right clicking ont he toolbar shows the option to reposition it. So have done so. By adding this line

  "tool-bar":
    position: "Left"

well, here you can find other config settings that uber-juno automatically sets

1 Like