Why do we have to install certain programs rather than by gems? And what are the implications?

A general question: Can you explain the high level interactions of certain programs we install? We install elastic search, imagemagick, and sometimes have to install other programs on our computer. - What is the purpose and interaction of doing things this way? - These seem to be different from copy pasting files into vendor folders. They require installs. - Is executing commands like `devise:install` essentially the same "level of installation" (if that makes sense) as installing "manually", as we do for imagemagick and elasticsearch? - How do things get handled on other machines when we hard install programs onto computers (e.g. lets say we clone a project from github, but don't have manually installed programs like elasticsearch or imagemagick on the local machine. Does the new computer have to find and run those manual installations? How do these requirements apply to servers like heroku?

Posted over 5 years ago by Jeehyo Ahn
Posted over 5 years ago by Alex Yang

Installations are always a tricky topic, but I'll explain what I know. Gem-specific commands like 'devise:install' are pretty straightforward - they're used as convenient shortcuts for relatively simple tasks, like creating files in your app directory or setting configuration variables. For example, 'devise:install' copies a standard set of Devise-related view pages into your app.

Installing software like ImageMagick is more complicated. ImageMagick, for example, enables your computer to manipulate images (e.g. resizing, cropping, etc). Without installing ImageMagick, you would not be able to access these features in gems like paperclip and carrierwave. So cloning a project from GitHub without having ImageMagick installed would result in a functional app with potential image-related bugs. For instance, thumbnail-sized images would end up being the sizes of the originals, which would screw up alignment.

I'm not as familiar with how this works on the Heroku side. I assume that certain functionality is built in by default, but for other custom features, you'll need to install certain Heroku add-ons. That's what we had to do in the Yelpdemo course.

0
Posted over 5 years ago by Jeehyo Ahn

So devise:install isn't really "installing" in the sense of installing something like imagemagick. it's simply a file generator like "rails new app"

0
Posted over 5 years ago by Alex Yang

Exactly.

0