Allow user to override temp folder with HOMEBREW_TEMP

This commit is contained in:
Adam Vandenberg 2010-05-01 14:06:23 -07:00
parent ecb5ce103e
commit c37294e9d3
4 changed files with 26 additions and 9 deletions

View File

@ -146,6 +146,15 @@ didn't include with OS X.
* HOMEBREW\_DEBUG:
If set, instructs Homebrew to always assume `--debug` when running commands.
* HOMEBREW\_TEMP:
If set, instructs Homebrew to use `HOMEBREW_TEMP` as the temporary folder
for building packages. This may be needed if your system temp folder and
Homebrew Prefix are on different volumes, as OS X has trouble moving
symlinks across volumes when the target does not yet exist.
This issue typically occurs when using FileVault (or certain custom SSD
configurations.)
* HOMEBREW\_USE\_LLVM:
If set, instructs Homebrew to use the LLVM front-ends to the GCC compilers.
*NOTE*: Not all formulae will build correctly under LLVM.

View File

@ -353,17 +353,13 @@ def check_for_multiple_volumes
unless where_cellar == where_temp
puts <<-EOS.undent
Your Cellar and TMP folders are on different volumes.
Your Cellar and /tmp folders are on different volumes.
Putting your Cellar and TMP folders on different volumes causes problems
for brews that install symlinks, such as Git.
Please post the details of your setup to this existing issue, if the comments
there don't already capture them:
http://github.com/mxcl/homebrew/issues/issue/1238
A work-around is available in this branch:
http://github.com/adamv/homebrew/tree/temp
You should set the "HOMEBREW_TEMP" environmental variable to a suitable
folder on the same volume as your Cellar.
EOS
end

View File

@ -347,7 +347,12 @@ private
# I used /tmp rather than mktemp -td because that generates a directory
# name with exotic characters like + in it, and these break badly written
# scripts that don't escape strings before trying to regexp them :(
tmp=Pathname.new `/usr/bin/mktemp -d /tmp/homebrew-#{name}-#{version}-XXXX`.strip
# If the user has FileVault enabled, then we can't mv symlinks from the
# /tmp volume to the other volume. So we let the user override the tmp
# prefix if they need to.
tmp_prefix = ENV['HOMEBREW_TEMP'] || '/tmp'
tmp=Pathname.new `/usr/bin/mktemp -d #{tmp_prefix}/homebrew-#{name}-#{version}-XXXX`.strip
raise "Couldn't create build sandbox" if not tmp.directory? or $? != 0
begin
wd=Dir.pwd

View File

@ -1,7 +1,7 @@
.\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3
.
.TH "BREW" "1" "June 2010" "Homebrew" "brew"
.TH "BREW" "1" "July 2010" "Homebrew" "brew"
.
.SH "NAME"
\fBbrew\fR \- The missing package manager for OS X
@ -161,6 +161,13 @@ HOMEBREW_DEBUG
If set, instructs Homebrew to always assume \fB\-\-debug\fR when running commands\.
.
.TP
HOMEBREW_TEMP
If set, instructs Homebrew to use \fBHOMEBREW_TEMP\fR as the temporary folder for building packages\. This may be needed if your system temp folder and Homebrew Prefix are on different volumes, as OS X has trouble moving symlinks across volumes when the target does not yet exist\.
.
.IP
This issue typically occurs when using FileVault (or certain custom SSD configurations\.)
.
.TP
HOMEBREW_USE_LLVM
If set, instructs Homebrew to use the LLVM front\-ends to the GCC compilers\.
.