Install packages behind a firewall with no command line


#1

I am using atom for a class in school and the school firewall doesn’t allow me to install through atom itself, and I have no access to command line to do apm install because of having to use my school-administered windows login. I have tried just dragging package files to the packages folder, but of course that doesn’t properly install them so it just gives me error messages in atom. Does anyone have some kind of work around or any way I can properly install packages by just dragging some files into folders?


#2

You can always run a shell command from inside Atom using the BufferedProcess API. All you have to do is open the developer tools (View -> Developer -> Toggle developer tools) and enter the following code into the console:

const {BufferedProcess} = require('atom')
let shell_command = new BufferedProcess({command: 'apm', args: ["install", "termination"], stdout: (output) => console.log(output), stderr: (output) => console.log(output), exit: (output) => console.log(output)})

This will install the package termination, which creates a terminal inside Atom and can run anything Atom has permission to run. You can also do the same with process-palette.

I’ve just told you how to hack into your school’s computers a little bit. Don’t do anything conspicuous enough to get the sysadmins to look at Atom as a threat and restrict its use at your school. Atom has a community of responsible hackers who just want customized experiences, and while you might decide to share this with your instructor or fellow classmates, it has the potential to be harnessed by those with less savory motives. Keep that in mind.


#3

All I got was this error message
e[31mRequest for package information failed: tunneling socket could not be established, statusCode=407 (5 attempts) (ECONNRESET)e[39m


#4

My bad, I skipped a step. First you should do what the APM documentation says to do about firewalls and use it with the args value set to ['config', 'set', 'strict-ssl', 'false'].