I just discovered Homebrew Package Manager and I like the idea of it.
Is it possible to manage and upgrade casual software like Ableton, Word, Excel, InkScape, CodePaint, etc. or is Homebrew 100% ruby?
I am looking for a easy way to keep my Macs clean and I need to be able to setup new Macs fast. So creating a recipe for all software then brewing it sounded like a good plan.
Best,
Tobias
Just for completeness:
The extension Homebrew-Cask allows Homebrew to work with casual software too:
https://github.com/caskroom/homebrew-cask
Homebrew only provide a way to install open source software, so if someone built a formula (a description of how to get sources and compile that program) to describe that software package you can install it with homebrew, otherwise you can build a formula yourself(it's not that hard) or wait for someone else to do it.
So, regarding the availability in homebrew:
Not available: Ableton,Word,Excel,PaintCode
Available: Inkscape
Related
I'm writing a script that will install some of the optional postgresql modules. Is there a way to programmatically figure out where the contrib directory is or do I have to prompt for the path? I've looked at a few examples and it seems inconsistent; doesn't appear in pg_config.
(The script might be run on OS X or linux, and I can't make assumptions about how postgresql was installed).
There is no easy works everywhere answer to this, so it's a matter of how much intelligence you want to try and put into your installer. And for some people it will be impossible to do what you hope for, the best you'll be able to do is offer guidance about what's missing. There is a lot of variation on packaging here between Linux distributions, versions of PostgreSQL, and the various ways you can install PostgreSQL on OS X (MacPorts, homebrew, etc.)
First off, only source code installs will have a contrib directory with source code in it that allows building the optional modules. In the packaged builds for Linux, all the contrib binaries may only be available via an optional package, called something like postgresql-contrib. That's the only way to make the optional modules that come with the database available: install the package the binaries are included in. You may see some variation in the OS X builds here too.
If you want to install extensions (what these are officially called as of PostgreSQL 9.1 now, rather than 'modules') using binaries you provide instead, what you then want to know is where to put the resulting shared libraries and matching SQL files that reference them. What pgconfig returns for pkglibdir will tell you where the binaries go, while sharedir points toward the default place to put the SQL. Providing binaries is a losing game though; the job of syncing with every platform to build them is a huge one.
And here are the sort of additional complications you'll run into in this area, if you wanted to ship source code and try to build things yourself in an automatic way:
PostgreSQL 9.1 now installs these using the CREATE EXTENSION
mechanism, so you'll need to handle both the pre-9.1 method and the
new one introduced there.
Not all PostgreSQL installations will have
pg_config. It's considered a development tool, and which package it
gets bundled with (and whether that package is mandatory or not)
varies. Debian/Ubuntu put it into the optional liqpq-dev, RedHat
derived RPMs have it in postgresql-devel or
postgresql-[version]-devel.
Due to pg_config being necessary for
compiling the new 9.1 extensions, packagers have started
reconsidering where pg_config goes; it's considered a lot more
important now than it used to be. 9.1 or later packages might alter which package it's contained in. That doesn't really change what you can and can't do though. It just impacts what advice you might offer for correcting situations your program can't deal with.
I've been describing the standard
Linux packaging here when I talk about that OS. There are also installers for both Linux and
OS X from EnterpriseDB, what they call their "one-click installers".
These use a different standard altogether for what people do and don't get installed in this area. I don't follow the commercial packaging to know what is actually different, but it's another variable you can expect people to encounter.
Recent OS X versions may
have some system PostgreSQL components floating around too. No idea
yet how this handle extensions though.
Basically, all three of version/packager/platform can vary how this will work, and the idea that you'll find any solution that handles even the majority of those permutations is optimistic. Installing extensions is known to be difficult in PostgreSQL, which is one thing that motivated all the 9.1 changes to turn it into a simple CREATE EXTENSION for many of them. But for now, those changes have just added another whole set of variation into the mix, actually making this harder during the transition period. It will be a while until PostgreSQL versions supporting that are the only ones in popular use.
I currently have Scala 2.9.0.1 installed and see that Scala 2.9.1 was released fairly recently. I want to upgrade. However, from what I'm seeing, I don't think homebrew supports upgrading formulae.
I see that "Multiple Version Support" is on the homebrew wishlist, but I wonder if this is up-to-date and/or much of an indication of future priorities for the project. I did a quick look at tickets in the ticket tracker but didn't see anything that jumped out at me.
In my case, I'm going to just install the new version and update my environment variables. That will work I suppose. But I feel like a package manager should help me clean up old versions if I want it to.
Related links from the mailing list archives:
I missed how to "brew upgrade outdated" or similar
Making upgrades work properly
No to both (automatic updating and multiple version management) per https://github.com/mxcl/homebrew/wiki/Wishlist
Why does Mac OS X come with ruby and ruby on rails pre-installed? Does the OS actually use it at all? Can I update my Ruby, Rails or Gem versions safely without something spitting the dummy?
As others have noted, OS X comes with various open source packages pre-installed. While this can be a nice convenience, the packages often are only updated to new versions as part of a major OS X release (like 10.5 to 10.6). Also, some packages are used elsewhere by other parts of OS X and there is no easy way to know which. In general, Apple assumes (and you should, too) that everything under /System/Library and /usr/, except for /usr/local/, is part of OS X and is administered by Apple. You should not attempt to remove or modify files in those hierarchies. That includes just about all of the open source packages, including Ruby.
Instead, to upgrade an existing package, the right approach is to install a new version in a separate location (say, /usr/local/) and invoke the new version by an absolute path reference (/usr/local/bin/ruby) or manipulating the shell PATH environment variable, if necessary. /usr/local/ is often used if installing directly from source. Many people prefer to use one of the 3rd-party open source package distributors, such as MacPorts, Fink, or Homebrew, each of which has its own package manager and installation locations.
No the OS does not use, it is just that Apple wants to make her products a bit more appealing to developers. (there is also Python preinstalled along with some other packets).
You can safely update your Ruby, Rails, Gems but the default Ruby version is a bit outdated. Check RVM so that you can install different Rubies in your system
Consider Rubystack if you want to play with more up-to-date environments without interfering with the existing versions. Disclaimer, I am one of the developers of RubyStack. It is freely available under the open source Apache 2.0 License.
I'm in the process of deploying a rails application to Windows machines. I do all of my development with OS X and Linux, but the final app will actually run on Windows machines.
That said, my client is looking for an all-in-one Apache(I had to talk him out of IIS)+Rails+Application deployment/installer. He wants to hand all of his (Windows-based) clients an install CD for their respective servers (they all want their own setup).
Is there anything like this in existence? I realize Capistrano exists but that requires a great deal of setup on the hosts (especially for Windows) beforehand and it's not very feasible in this particular case.
In the past I've used InnoSetup (http://www.jrsoftware.org/isinfo.php) for creating installers, but I'm not sure that's going to work in this case.
If you guys have any input, suggestions, or highly persuasive client techniques (to talk them all out of Windows =P) it would be most appreciated.
Best.
Try with RubyStack:
BitNami RubyStack is an installer that greatly simplifies the installation of Ruby on Rails and its runtime dependencies. It includes ready-to-run versions of Ruby, Rails, MySQL and Subversion as well as a number of third-party libraries like FiveRuns TuneUp. RubyStack is distributed for free under the Apache 2.0 license and has been packaged using BitRock's multiplatform installer.
http://bitnami.org/stack/rubystack
I'd look into using jruby with glassfish. Make sure the users have java and it should be good to go.
RubyStack is the closest thing to what you're after, although you might need to tailer the install a bit and remove some unwanted baggage. I don't know of any other Windows projects for a production environment (InstantRails is designed for development).
Maybe you can make InstantRails meet your needs.
Ruby and thus Ruby on Rails is a fairly notorious deployment on Windows even in the best of circumstances, moreso when the setup is out or your hands like that. I don't mean to admonish, but this definitely speaks to matching development and deployment enviroment (I once ran into similar problems when I found out that the Java enviroment we were deploying to was a good half-a-decade out of date).
As I don't have enough Ruby-on-Windows experience to fairly weigh in on the matter, I'd say either LiveCD's or CygWin deployments may be worth looking at (Always good to broaden people's view on alternate Operating Systems, right?).
Have you considered building a single version that runs in a VM?
For this particular problem, I'd go with a traditional Windows installer package like NSIS.
When I had a client with a Windows-only IT department, though, I found they were much more amenable to an XServer than a linux server. I don't generally think of OS X as a server OS, but it actually worked really well. I tried for linux first, and when they shot it down, I suggested OS X and they jumped at it.
It helped, I think, that they already supported some Mac laptops.
Good luck!
As other posters have suggested, RubyStack should be a good option. It is free and you can always use it to run your own 'post install' scripts to customize it for what you want. If you want a supported stack or addition/modifications to RubyStack you can get commercial support from BitRock We have done so for several Rails based companies that wanted a local version, including for the guys over at GitHub
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I'm starting a new job soon where I'm going to be developing in Ruby and Rails on a Windows machine. I haven't used Windows for years, and the likes of Textmate, Git and Bash, are an integral part of the workflow using a Mac.
So, does anybody have any suggestions or recommendations as to the best tools or work strategies to use? Or pitfalls to avoid?
In particular, of course, I'm interested in the best text editor. (I'm seriously thinking about taking the opportunity to learn Vim or Emacs, or whatever the Windows ports are called, but any other thoughts would be welcome.)
Additionally, any ideas of useful plugins, tools or programs would be appreciated.
If you think that I've completely lost my mind, then feel free to tell me too ;-)
cheers !
Ruby and Rails
RubyInstaller for Windows
RubyStack installer for Windows
Rails
Development Environment
IDEs
RubyMine
NetBeans
Aptana RadRails
Text Editors
Sublime Text 2
e (aka TextMate for Windows) (seems to have been abandoned)
Vim/Ruby
bash Environment
Cygwin
Source Control
Git
Helpful Links
Setting Up Rails Development Environment on Windows XP
RubyonWindows Blog
Is Windows a First Class Platform for Ruby?
Related Questions
Why is ruby so much slower on windows?
Limitations in running Ruby/Rails on windows
Will using an IDE with Rails hinder me?
GUI editor for Ruby in Windows
What IDE / Editor do you use for Ruby on Windows?
https://stackoverflow.com/questions/826164/a-definitive-list-of-ides-for-ruby-on-rails
Ruby On Rails with Windows Vista - Best Setup?
https://stackoverflow.com/search?q=ruby+on+windows
RubyMine is supposed to be a top notch IDE. JetBrains always makes great products.
NetBeans or e as IDEs
Here's my incredibly detailed setup guide for Windows Server 2003, which works essentially unchanged on XP Pro and Vista. See this general installation list, and modify the instructions if you get different results. They're meant for people new to programming, so they'll probably be overly explicit for your purposes.
IMO, the one thing you definitely need is a *nix-style shell. This has nothing to do with whether you like dir or ls - you need to be able to run shell scripts or you won't get very far.
git bash (comes with msysgit) is my beacon in the storm of cmd.exe windows. It's essentially bash on Windows, and lets you run almost any script that you can run on *nix. This includes all the gem command line executables.
It gets weird in a few places.
File permissions - there just isn't a great way to map between Windows ACLs and POSIX file permissions. The Cygwin people have devoted years to solving it, but it still doesn't work all the time. git bash's approach is to just not do anything when asked to do a (for example) FileUtils.chmod. That means you may need to create a few more directories by hand, and you do need to be very aware of when something is changing file permissions.
For example, when I installed the Heroku gem on Windows, it tried to set the permissions of my Heroku credentials file, which has my Heroku password in plaintext, to u+r go-rwx. You'd definitely want to change the ACLs on that file if you're on a shared machine.
Scripts vs. .bat files - I wanted to change git's default editor from vi to SCiTE (not that I don't like vi; this was for a new-user workshop and I didn't want to explain editing modes). I had to create a .bat file that was actually a shell script. See the full explanation here:
How can I set up an editor to work with Git on Windows
I am using Netbeans, which is a good overall editor (at least for me).
For simple projects I use JEdit.
You can find the link at
NetBeans IDE
You can find JEdit at JEdit
git is available on Windows: http://code.google.com/p/msysgit/ or http://kerneltrap.org/Linux/Git_on_Windows
Basically, you need to decide whether you are going to go the Cygwin route or the MingW route. Both will provide you with Bash as well.
GVim works great. I use the native port rather than the Cygwin version.
If your development life is switching to Windows then you may want your employer to invest in this:
Ruby In Steel by SapphireSteel Software
I've used it in the past when I started tinkering with Ruby on Rails, quite nice and reasonably mature now. Also it's built on Visual Studio which I still think is one of the premier development environments around.
Maybe bring a LiveCD to work with you every morning..
you can even put it on a usb flash drive, if you use a small enough distro/big enough drive...
Cygwin as command line tool
The two best RoR IDE's I've used are NetBeans and Aptana Studio. However, for the most part I stick with Notepad++ and its various plugins (Explorer and HTML tags being two important ones).
This may not be applicable in your situation (IT restrictions, etc), but another option might be virtualization. You could install VirtualBox, VMWare, or some equivalent, and run Ubuntu (or your preferred Linux distribution, of course) that way, gaining access to the full UNIX toolset.
You didn't say whether you're using Windows voluntarily. However, this line suggests to me that maybe that's the case:
"If you think that I've completely lost my mind, then feel free to tell me too"
If you have any choice in the matter, I strongly recommend using a Unix-based system instead of Windows. If you have to go through inconvenience, spend money, or jump through hoops to avoid doing Ruby/Rails development on Windows, it will be worth it.
I've had to cope with Ruby and Rails on Windows a lot recently due to legacy systems and other developers' preferences. Rails development on a Unix-based system is much more efficient. The difference is not subtle.
That said, as others have mentioned, installing mysysgit even if you aren't using Git is helpful because it comes with Git Bash which gives you a usable bash command line.
As for text editors, I like Notepad++.
NetBeans is a really nice IDE for Rails development. Decent syntax highlighting, code completion, error highlighting. Handy keyboard shortcuts for navigation. It's pretty good.
IntelliJ IDEA
I developed in RoR under Windows for a few years, it's bearable, but Linux (or Mac) is much better for this. Lots of gems and plugins are considerably harder to install on Windows (quixml, for example).
My favorite text editor under Windows is Textpad, Eclipse is also pretty good.
If you want to use ls, find, grep... in Windows console, just download some package of their Win32 ports, install them and add to your PATH (Cygwin is definitely better, but also harder to install). You might also try out Powershell, it's supposed to be a replacement for unix command line by Microsoft.
I use virtual box, putty, and xming to do the development in an isolated linux environment. I blogged the full setup here
I've struggled a lot with Rails development on Windows. At some point I needed a specific gem that didn't work on Windows. I prefer working with a VM using Vagrant
Here's a blog post I wrote, how I setup my projects with the use of Chef and Vagrant