Deploying the bare bones site

The quest to get a bare bones ASP.NET 5 (aka vNext) website running on a shared Linux hosting account, is now at the stage where we should be able to deploy a website and see it in a browser.

Unfortunately, the documentation only has entries on how to deploy to IIS and for when you use Docker. Nothing about deploying to Linux… 🙁

034-Publishing-and-Deploy-documentation

The DNVM installation instructions got us to install Libuv “so we can use the KestrelHttpServer”. Let’s see whether that leads anywhere.

The link in the DNVM installation instructions leads to the KestrelHttpServer GitHub page. The readme directs us to the “ASP.NET 5 Home repo”, i.e. the home page of the ASP.NET 5 project’s repository.

You know what? It’s hot… I am going to take my dog for a swim first…

Right. The ASP.NET 5 project’s home page also has same instructions for installing DNVM. These instructions are the same as on the page I have been working from, but this page shows more than just installation instructions. In the “Running an application” it also tells you to execute dnvm upgrade and how to run the samples. So let’s see.

Running dnvm upgrade (yes, I did manage to remember my password this time around), instantly puts the brakes on this quest by reporting that it needs unzip to proceed.

035-Needs-unzip

That’s a yak to shave, but one that seems unavoidable. Let’s shave it. Google brings up a couple of interesting results. And a quick scan reveals that it should be possible to install unzip in the same way as we installed make:

sudo apt-get install unzip

Yup. Re-executing the dnvm upgrade now no longer complains about unzip. The output is confusing though. It says dnx-mono.1.0.0-beta5 is installed, but it also says that it cannot find dnx-mono.1.0.0-beta5…?!

036-AlreadyInstalledYetCannotFind

I am choosing to ignore that for now and move straight on to the instructions for “Running the samples” on the ASP.NET 5 project’s home page.

It says to clone the ASP.NET 5 Home repository.

Ya. Right. I am sensing another couple of yaks in need of shaving:
Is Git installed at all? Considering that make and unzip were not… probably not
What is the Git command I need to comply with the instruction?
Remember I am spoilt rotten with GUI interfaces that shield me from having to remember all sorts of commands and options!

Telling Leonard to run Git brings a nice surprise. An actual helpful error message that not only says what’s wrong but also tells you how to remedy it:

037-Typing-Git

While that is running let’s find out what command I need to clone the ASP.NET 5 repository. Google results lead to documentation that results in information overload. I am not interested in all the intricacies of the git clone command. I just want a copy of the samples on my Linux server, because that is needed to get them running.

Blond moment required. Let’s just tell Leonard to run git clone https://github.com/aspnet/home. Seems to have worked. I have no idea where the files ended up, though. And I don’t have any stomach for hunting for them. There is absolutely no fun in browsing a file system without a GUI.

038-Git-Clone

[aside]
If anybody has any suggestions for a GUI app that will allow me to browse McCoy’s file system, I’m all ears.
[/aside]

The “Running the samples” instructions second step is to “Change directory to the folder of the sample you want to run”. Bummer. No choice then. I’ll have to figure out where git clone put the files…

As the Libuv source files ended up in /usr/local I am guessing they have probably ended up in the same general location. Nope. There is a src folder there, but that is a remnant of the Libuv installation and completely empty. So back to the root. A dir reveals a home folder. That must be it then. The output from the git clone command did mention Cloning into 'home'. My assumption that it would have used a subfolder of something under /usr/local was obviously incorrect.

As browsing a file system using cd and dir is blatantly painful to me, I am going to cheat. I’ll look for the sample I want to run on GitHub and then use cd to navigate straight to it. I picked the HelloMvc sample. No particular reason. According to GitHub that is in Home/samples/1.0.0-beta5/HelloMvc except that cd’ing to it brings up a “No such file or directory.”

Oh boy, the joys of a case-sensitive file system… It has to be home/samples/1.0.0-beta5/HelloMvc

[aside]
Why didn’t the git clone command copy the casing? Or did it? I entered “home” lower case, but the repository uses an upper case ‘h’: “Home”. Now I can understand a case sensitive system doing what it’s told, but GitHub understood that I meant Home while saying home and urls are only case insensitive up until the TLD. Everything after that is case sensitive.
[/aside]

Ok. Let’s run the dnu restore. According to the “Running the samples” instructions that should “restore the packages required by that sample”.

Except, it doesn’t.

039-Unsuccessful-dnu-restore

Running dnu after installing dnvm and running the dnvm upgrade did work when I did it on my laptop. Why doesn’t it work on this Linux machine? Could it have something to do with those conflicting messages earlier. The ones about dnx-mono.1.0.0-beta5 already being installed, but still unable to find it?

Probably.

What did the message say again about what I might need to run? “do you need to run ‘dnvm install 1.0.0-beta5‘?” Let’s do that and see what happens. Same as before “already installed” and still “cannot find”…

Hmm. Looking back at what I did on my laptop, the command after installing dnvm wasn’t dnu but dnx. Unfortunately McCoy has no idea what to do with that either.

Me thinks this is a wee road block.

I’ll need to do some investigating. Is it dnu or dnx that I need? And if it is dnu what actually is it and how do I get it? And if it should be dnx, how do I get past the already-installed-not-found confusion?

I'll-be-back

I’ll be back!


If you don’t want to miss anything: subscribe below and get every post delivered straight into your inbox.



Leave a Reply

Your email address will not be published. Required fields are marked *

*

Show Buttons
Hide Buttons