Meteor for Linux using Windows 10 Linux bash shell - linux

Context:
I've read Meteor is developed differently for Windows and Linux (as expected), and while it works on Windows, on Linux it has some features that allow faster building times (among other benefits).
Since those building times are becoming increasingly important as I invest more time on Meteor, I am considering trying Meteor for Linux and see if I can improve my productivity.
Actual question:
Can I install Meteor for Linux using the Windows 10 Linux Bash Shell and obtain the benefits of Meteor for Linux inside Windows?

A little late to answer this, but I am running Windows 10 with the WSL (Ubuntu) and was able to install Meteor via
$ # this will take a few minutes
$ curl -sL https://install.meteor.com | bash -
When I run meteor run it hits an error along the lines of
Unexpected mongo exit code null. Restarting.
So my solution is to run an alternative Mongo database in the background
$ apt-get install mongodb-server
$ mongod # assumes you've created /data/db and have ownership
$ export MONGO_URL=mongodb://127.0.0.1:27017
$ meteor run

I don't think you can do that. You can install a Virtual Machine using VMware that can run Ubuntu or similar. If you are not an expert in setting up vm's, this could take you some time.
A friend of mine uses Windows to develop meteor apps, and he hasn't complained of performance. He's definitely not envious of my Mac set up.
Before you go setting up another environment, I would try it and see if it's painful or not. Probably more the issue is how much RAM you have, anything less than 4GB, Meteor may struggle, so simply adding memory might help and save you a bunch of work

NO need virtual machine!
You need to install "xming" on windows and run xming
https://sourceforge.net/projects/xming/
write in bash shell "DISPLAY=:0 [APPNAME]"
DISPLAY=:0 firefox
or write
export DISPLAY=:0
firefox

Related

Ubuntu - I can't lauch apps and run command with sudo

I am writing this post because after several hours of research I did not manage to find an answer.
I have been using Ubuntu 20.04 for a few months in dualboot on my original Windows. But since a few days I have not been able to launch applications (example: Chromium, Firefox, Visual Studio Code, Settings), I tried to launch them via the terminal, but I have no response, not even an error. I also cannot execute a command with sudo
After several searches I understood that it could come from gnome, I then try several subject recommend it to execute
$ killall gnome-control-center
$ gnome-control-center
When I try to kill I get no response, and when I run gnome-control-center I get the following error :Failed to register: Timeout was reached
I cannot move forward in my plans because of this problem, would you have a solution please?
This might just be that something on your system is corrupted, you might just have to copy the files you use all the time (Code, pdfs) wipe the drive and reinstall your ubuntu. Also, check if the Windows is working if that's not working it might be a problem with your computers internals.

Using manual STAF commands on Linux

I've recently started working with STAF and couldn't get 2 machines to communicate with each other. One of those machines is a Linux ec2-instance on AWS and can't be pinged.
I was planning on pinging STAF from one virtual machine to another to see if the company firewall could be the cause of this but I can't seem to use commands on linux (like "staf local ping ping" on windows for example). When I try to run STAFProc with gdb (in /usr/local/staf/bin) I get the following error.
(gdb) run
Starting program: /usr/local/staf/bin/STAFProc
/bin/bash: /usr/local/staf/bin/STAFProc: No such file or directory
(The STAFProc file is there though. Does gdb work from another directory?)
I'm not exactly experienced with STAF, AWS or even Linux so any help to get me started with debugging would be greatly appreciated.
Though it is a bit long since the question is asked and the op seem to figure it out already, I might still post my solution as well.
There is a possibility that it is caused by trying to open a 32bit binary on a 64bit device.
If you are working on Debian based os, try
sudo apt-get install lib32stdc++6

Windows 8 + Git + Composer + SSH

So, I've been using ubuntu linux for a few months and loved it for my web dev. Everything simply works!
But I switched back to windows because linux sadly doesn't run 90% of my apps :(
So now I have a question, how do you work with git, composer and ssh on windows?
Should I setup a linux virtualbox or is it possible to be able to work comfortably without it?
"TortoiseGit" is a nice extension if you prefer some graphical support, and this needs "msysgit" to give the git commands on windows - which also brings you "git bash" if you prefer the command line. "msysgit" could be installed standalone.
SSH under Windows is always Putty. Grab the newest release 0.63, it has security fixes. To work easily with git then, you need to setup the whole public key authentication with "pageant" running in the background. Putty does a bad job configuring it to convenient levels, you have to manually add it to autostart. Or you could either use KeePass with the KeeAgent plugin to get the same (I prefer it a lot: All authentication stuff in one location).
Executing composer is a question of having installed PHP >= 5.3. If PHP is installed, you execute the alternative install command (without curl) and are nearly ready to go. Having PHP and the composer.phar in the path or add their location to the path eases things a lot.
Caveat: I have no experience with Windows 8 so far, things might be different there. My suggestions are supposed to work on Win 7 at least.
The biggest drawback of Windows is that there is no decent shell support I'd like. Having a virtual machine still is a good idea, but you need your development tools within Windows as well.

Meteor support developing on Windows

Does Meteor support developing on Windows? I did not see any downloads or mention of Windows in the docs.
The "Quick Start" assumes you are on *Nix OS.
Meteor 1.1+: official Windows support launched on https://win.meteor.com/
Meteor 1.0+: there is an official Windows preview.
Meteor 0.8 and older: see http://win.meteor.com/
Proof, Meteor running on Windows.
Edit: See Tom's answer.
Old answer below.
No, this is not yet supported on windows. If you try to install in you will receive the following error:
Sorry, this OS is not supported yet.
As a workaround you can run a linux box in a VM and use that as a server to run meteor but still do all development from within windows. I've done this using VirtualBox to run Ubuntu with no GUI. Here's the steps:
Install VirtualBox
Grab Ubuntu ISO
Setup Ubuntu VM using VirtualBox (just follow the wizard steps)
Install samba on VM to enable file access from windows. This article was a great help.
Install ssh using Ubuntu Software Center. This was helpful.
Shutdown VM and run from a DOS prompt using vboxheadless -startvm "VM Name"
You can then use a ssh client (I'm using cygwin) to connect to the box to run commands e.g. ssh user#box_ip_address
Can browse and edit files using windows file share e.g. \\box_ip_address\share
Can run meteor apps within local browser, just replace the localhost in the address that meteor assigns with the ip address of the box.
I just tried to install it with curl on Windows 7, and got:
Sorry, this OS is not supported yet.
A substantial update as the existing answers to this question are very out of date.
Official Windows support can be found at https://github.com/meteor/meteor/wiki/Preview-of-Meteor-on-Windows
Unofficial Windows support for Meteor can be found on http://win.meteor.com/
There are 3 solutions outlined on win.meteor.com, one native MSI installer, and 2 virtualized solutions based on Vagrant:
1) MSI Installer:
Stephen Darnell has picked up where Tom Wijsman graciously left off.
This solution is the most straight forward way to get Meteor running
on Windows with an MSI Installer provided. There are some trade-offs
because this is a fork and can lag behind the latest version as
Stephen can update to and test the latest version.
2) Vagrant Shell Provisioning
Gabriel Pugliese has posted a guide for how to provision Meteor on
Linux with Vagrant's Shell Provisioning. These may be more accessible
to users familier with Linux and Shell scripts. This solution is
easier to tweak through the straight forward shell commands than the
Chef alternative.
3) Vagrant Chef Provisioning
Matthew Sullivan is maintaining a set of Vagrant files, Chef cookbook,
and guide for provisioning Meteor on Linux with Vagrant. This Chef
solution is a slightly more automated and configurable than the shell
solution, however likely not as simple to tweak beyond the provided
configuration parameters as the Shell solution.
GitHub Repos and details can be found on win.meteor.com. The three authors are very responsive on the Meteor-talk Google Group.
A bit of history:
Unofficial Windows support for Meteor was started by Tom Wijsman, and was supported by Tom until 0.5.9. Versions 0.6.0 and later are by Stephen Darnell, Gabriel Pugliese, and Matt Sullivan.
I do not see Nitrous.io mentioned here.
I am using Nitrous.io together with Nitrous Desktop, which allows you to use your favourite text editor (in my case, Sublime Text).
There is a quick tutorial here and Discover Meteor also deals with this in chapter 2.
It sounds like Windows is not supported yet. If you want to play with it, I would suggest grabbing VirtualBox and installing your favorite flavor of Linux on it.
I downloaded the above .msi installer and installed to c:\Meteor
Add the c:\Meteor directory you just made to your PATH environment variable.
Run the following command: npm install Meteor-Test-Installer
Add the C:\Meteor\bin\node_modules\npm\bin directory you just made to your PATH environment variable.
Log below from my DOS screen:
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Users\mike>cd\
C:\>cd meteor
C:\Meteor>cd C:\Meteor\bin\node_modules\npm\bin
C:\Meteor\bin\node_modules\npm\bin>meteor create try-meteor
try-meteor: created.
To run your new app:
cd try-meteor
meteor
C:\Meteor\bin\node_modules\npm\bin>curl
‘curl’ is not recognized as an internal or external command,
operable program or batch file.
C:\Meteor\bin\node_modules\npm\bin>cd try-meteor
C:\Meteor\bin\node_modules\npm\bin\try-meteor>meteor
[[[[[ C:\Meteor\bin\node_modules\npm\bin\try-meteor ]]]]]
Initializing mongo database… this may take a moment.
Running on: http://localhost:3000/
Open http://localhost:3000/ in broswer ... Voila !!
Hello World!
Welcome to try-meteor.
If you get error like this below :
{
[[[[[ D:\sms\Apps\Meteor\bin\node_modules\npm\bin\try-meteor ]]]]]
Unexpected mongo exit code 127. Restarting.
Unexpected mongo exit code 127. Restarting.
////////////////////////////////////////
////////////////////////////////////////
meteor is out of date. Please run:
meteor update
////////////////////////////////////////
////////////////////////////////////////
Unexpected mongo exit code 127. Restarting.
Can't start mongod. Check for other processes listening on port 3002 or other me
teors running in the same project.
}
Update the MondoDB folder with the latest mogodb files from the mongodb site.
I've found that new coders who are also new to Meteor might have installed it correctly, but are having trouble figuring out how to open and run it. So I'll just address that issue in this post.
1) I assume you went here: http://win.meteor.com/ and downloaded the MSI installer
2) I assume you then created a newapp in meteor and then ran meteor
3) If steps 1 & 2 are complete, you should see this in your command line:
Initializing mongo database... this may take a moment.
=> Meteor server running on: http://localhost:3000/
4) Open Chrome and type in the local host address: http://localhost:3000/
5) Open your newapp folder - should be located in your Meteor folder wherever its installed on your hard drive
6) Open your newapp.html, newapp.css, and newapp.js files in your favorite editor (like Sublime Text 2)
7) Begin editing these files as you like and watch your page automatically update, as Meteor is designed to do.
Voila!! You're building with Meteor. Enjoy!!
As of two days ago, a preview version is available here:
https://github.com/meteor/meteor/wiki/Preview-of-Meteor-on-Windows
Recent check of their site and checking their FAQ, you'll find the Meteor Development Roadmap. They host it on Trello and after the 1.0 launch, you'll see "Official Windows Support." So, it's on the map - now we wait!
https://trello.com/board/meteor-roadmap/508721606e02bb9d570016ae
Using linux in VM you probably want meteorite which isn't easy if you are as bad as I am to Linux... Here's how (thank you johntday Unable to install meteorite on Ubuntu VM):
Here are my Install Steps
Update and Upgrade your Ubuntu Depending on how up-to-date your image is, this may take a while.
sudo apt-get update && sudo apt-get upgrade
Install curl sudo apt-get install curl
Install node http://lucidservices.com/2013/09/17/install-node-on-ubuntu/
Install meteor curl https://install.meteor.com | sh
Install meteorite sudo -H npm install -g meteorite
If you have problems setting a high screen resolution, here's a fix:
http://youtu.be/t36wXUu1UtQ

Barebones Linux Server Install

Whats the simplest way to get a barebones linux server installed?
barebones = just enough to get ssh and package manager.
Current I've been using CentOS with server install and removing any packages that I know i do not want installed.
But is there a better way? I just want a simple ssh shell + package management to start with. Hardware is irrelevant since everything is happening in a VM.
Debian Stable net install.
Once you have that installed and up and running, you can apt-get or aptitude install whatever packages you want. That's how I set up my servers.
If you have the time installing Gentoo will give you just want you want and no more.
Arch just
su -c 'pacman -S sshd'
then you have about as barebones as you can get. Pacman its package management system is pretty easy to use and what not also.
You know the guys over at SliceHost have some very nice documentation on setting up Linux VM's. http://articles.slicehost.com/ubuntu-intrepid I am using their service and I found their documentation to be excellent. Particularly in getting a barebones VM up and running. I use their documentation as a reference for setting up iptables firewall and other basic system tasks on other systems. Hope this helps.
JEOS - Just Enough Operating System, an Ubuntu project, should be exactly what you are looking for.

Resources