Bloody Linux! Just install the program/software
-
Full CentOS 7 install instructions here: http://mangolassi.it/topic/6967/installing-snipe-it-on-centos-7-and-mariadb
Worked like a charm here.
-
The install is super simple once you know there is a final app install step to populate the user in the database. The system has its own installer that takes care of everything except telling you to run that one final command.
-
So now that we've seen how simple this install is on Linux, want to compare to what the Windows people would have to have done?
-
Here is the full install on Linux: yum -y install epel-release; mkdir -p /var/www/html; cd /var/www/html/; wget https://raw.githubusercontent.com/snipe/snipe-it/master/install.sh && chmod 744 install.sh && ./install.sh && cd snipeit; sed -i "s/'timezone' => '',/'timezone' => 'UTC',/" app/config/app.php; php artisan app:install
Take note that that is literally every step for a system from "out of the box" to "running server all ready to be used." It even includes all of the necessary downloads from a third party, dependencies, extra packages and even the one manual configuration that the system needs.
Let's compare to the "Windows way" and what it would take at a minimum to accomplish this:
- Find a database of choice
- Go to website, find correct version of database
- Download database
- Install database software
- Create database manually
- Secure database
- Manually remove anonymous database users, test databases, etc.
- Create database user
- Set database user permissions
- Go to a website to find PHP
- Download PHP, must be sure to get right version
- Install PHP
- Go to a website and find PearDB
- Download PearDB
- Install PearDB
- Find list of PHP and PearDB modules that are needed
- Install needed modules (this is a step of unknown complexity.)
- Go to a website and find GIT
- Download GIT
- Install GIT
- Go to a website and find appropriate web server (or use IIS)
- Download and install webserver or add IIS role
- Configure webserver for the desired directory
- Create application directory
- Go into directory
- GIT Clone the Snipe-IT application into directory this is the first Snipe specific step
- Open Notepad and manually edit config file for time zone
- Open Notepad and manually edit database details with those you stored previously
- Start web server
- Start database
- Run Snipe-IT configuration utility from the command line (CMD or PS)
At this point we assume that the installation would work. As Linux handled all dependencies under the hood we don't know for sure that we got them all here and we are just assuming that this process would work. It is just known that these steps are the bare minimum to do this the Windows way. Some of these steps sound simple like "install database" but might be complex and time consuming on their own. And getting correctly matching application server, application platform, modules, extensions and databases with their libraries all correct may be simple or complex and getting the right downloads from websites could be difficult potentially.
I think that it is often overlooked that "hard" Linux installs often involve doing a huge amount of work that in Windows is views as an unrelated task (downloading and installing the platform, database, etc.) With an install like this, that one line Linux install gets not only the application but the entire stack on which it runs and even sets it up for a working, default install.
-
It's unfair to compare your one line Linux install to a windows install - at best I think you have to call it a merged line install. That single line is doing many of the steps you mention in the Windows install.
Granted, even with a great installer, often Windows users will have to interact with the installer for several steps, but it's also possible that the developer designed the installer to accept command line parameters that would prevent the need to interact with the installer.
Additionally, clearly this installer for Snipe-IT does NOTHING for you. In fact, from what I can tell there is no installer, you're pulling exe files from GIT.
I'm not sure if epel-release is installing the DB and PHP and PearlDB and the modules or if ./install.php is doing that?
Assuming ./install.php is doing that, then I'd say that the developer for Snipe-IT has spent a lot more time creating an installer that takes care of those things for you. Until the dev does the same thing for Windows, this is nor a fair comparison.
-
@Dashrender said:
It's unfair to compare your one line Linux install to a windows install - at best I think you have to call it a merged line install. That single line is doing many of the steps you mention in the Windows install.
It's quite fair. Look at those steps, one is just "open a folder" another is "make a folder." Most of those steps are things so basic that I listed them for Linux and on Windows they were not listed, just assumed in the litany of "busy work" for a Windows install.
I was very careful to make sure that my list favoured Windows as much as possible so no complaints about comparison could be made. Each step in Linux is equal or smaller than a step in Windows.
For example, it takes more work to "go to the website" on Windows than to run the ENTIRE Linux installer!
-
@Dashrender said:
Additionally, clearly this installer for Snipe-IT does NOTHING for you. In fact, from what I can tell there is no installer, you're pulling exe files from GIT.
Not quite. The installer is doing quite a lot. It is doing the work that an RPM should have done under the hood because they wanted a unified installer for multiple OSes.
Remember this is a "bad" Linux install process where the Linux way was not followed. This is a very convoluted process and it is still ridiculously better than the Windows way.
GIT is pulling PHP files, not exes.
-
@Dashrender said:
I'm not sure if epel-release is installing the DB and PHP and PearlDB and the modules or if ./install.php is doing that?
All it does is create a text file for you. The installer is installing all of the things that you mention.
-
If the Dev had created a good windows installer, the only thing the installer person would have needed to do was
visit website,
download installer
run installer
answer installer questions (installer will download any other components and installed them itself).I've used many Windows installers that are just that simple. Is it as simple as Linux.. OK it's not, but it doesn't have to be as difficult as this install clearly is.
-
@Dashrender said:
Assuming ./install.php is doing that, then I'd say that the developer for Snipe-IT has spent a lot more time creating an installer that takes care of those things for you. Until the dev does the same thing for Windows, this is nor a fair comparison.
That install.php is a simple automation of the RPM system with matching commands for APT-GET, that's all. Had this been ONLY for CentOS and not for multiple OSes, the whole list would have been much shorter.
How would there be an equivalent on Windows? What Windows command gets third party languages, app servers, libraries, dependencies, databases, modules and downloads, verifies and installs them for you?
This is VERY comparable.
-
@Dashrender said:
If the Dev had created a good windows installer, the only thing the installer person would have needed to do was
visit website,
download installer
run installer
answer installer questions (installer will download any other components and installed them itself).That's still four steps to one. That's three steps too many and the very first one is more effort than a full Linux install. The more you compare "good", the more Windows will always lose. It has no benefits in this arena.
But even so... how would they deal with the third party components?
-
And we have not mentioned patch management. The Linux installer here is only automating Linux, not doing extra stuff. So when this is all completed, the system is self maintaining and patching. Not just the OS, but the entire stack used to support the application.
Even putting in tons of effort to maybe get this to work the Windows way, you are still left with a system where you need to manually maintain the database, PHP, PearDB, modules, libraries, application platform, git, etc.
-
You're first step is always the same as the first step for the Windows install - finding the correct name of the thing you want to install. In your case yum ? or whatever the command is to find your desired package, for Windows, you visit the vendors page to download the installer.
Again, yes your linux way is faster/easier.
How does the installer deal with third party components? The dev tells the installer where to find them online, the installer then goes and downloads them and installs them. Linux of course is better here because it's less likely that the desired package will be removed from the repo, therefore you can trust it will always be there ( I guess/think). Of course if we are downloading things from third party websites, the dev has to hope that those sites don't move the installer files.
-
I've already admitted that the linux way is better, I'm not really sure what more you want from me.
-
@Dashrender said:
You're first step is always the same as the first step for the Windows install - finding the correct name of the thing you want to install. In your case yum ? or whatever the command is to find your desired package, for Windows, you visit the vendors page to download the installer.
Going to Google to search out and determine names is very intensive compared to just asking the OS what the package is.
And if you don't know the name, why are you installing it in the first place? I can find the package on Linux to install faster than I can get to the download folder on Windows after a long process of discovery has been done.
This is not comparable at all. Even packages that I know well, like PuTTY, take me far longer to link to and find the download link than doing a full install on Linux.
-
@Dashrender said:
I've used many Windows installers that are just that simple. Is it as simple as Linux.. OK it's not, but it doesn't have to be as difficult as this install clearly is.
No, but the Linux way isnt' this hard either. This is far harder than a good Linux install. Example...
yum install httpd
That's it. You want the stock HTTP Daemon (web server) that is it. Downloaded, version matched, installed, configured, turned on and patch managed.
This is how it is "meant" to work in Linux. It's meant to protect you against fishing, keep you from needing to seek out packages each time you use them, handle dependencies - everything that can be automated is.
Windows can be easy, sure. But even when working perfectly, it's never close to being on par. PuTTY is easily the easiest Windows package that I know how to deal with and it is quite a bit more effort.
-
Actually I'll say that Putty isn't easy because it's not an installed program. It will run from wherever you have it currently (at least by default).
-
@Dashrender said:
How does the installer deal with third party components? The dev tells the installer where to find them online, the installer then goes and downloads them and installs them.
No, the devs and the installers never get to make these decisions, that's what makes it work so well. It is managed repositories of code. This is where the safety comes in. The repos are controlled so no matter what reckless package request someone puts into an installer package, it only gets installed if you trust the source. This is key to a reliable system.
-
@scottalanmiller said:
If you were doing this "this Linux way" you just "yum install snipeit" and done.
Real men compile from source.
-
@scottalanmiller said:
I think that it is often overlooked that "hard" Linux installs often involve doing a huge amount of work that in Windows is views as an unrelated task (downloading and installing the platform, database, etc.)
Because it's assumed that you already have the stuff available. Is it any different than running all kinds of updates to get a newer version of PHP, MySQL, or anything else on Linux? Yeah, you can script it, but that's about it. You still have to do all those steps on any *nix.
When I deploy something other than standard .NET code on a Windows install, I make sure I have the right binaries in my library ready to go. And this is definitely outside of .NET. We don't even support the use of PHP on IIS. It's always a bad idea to use it.
Linux people think Windows is so complicated and hard when it's only them making it out to be. Then they deride us Windows admins because we only "click" and don't know anything.