Merge pull request #11244 from Moisan/docs_shebang
docs: mention shebang rewrite in the formula cookbook
This commit is contained in:
commit
c6ac648c08
@ -749,6 +749,12 @@ ln_s libexec/"name", bin
|
|||||||
|
|
||||||
The symlinks created by [`install_symlink`](https://rubydoc.brew.sh/Pathname#install_symlink-instance_method) are guaranteed to be relative. `ln_s` will only produce a relative symlink when given a relative path.
|
The symlinks created by [`install_symlink`](https://rubydoc.brew.sh/Pathname#install_symlink-instance_method) are guaranteed to be relative. `ln_s` will only produce a relative symlink when given a relative path.
|
||||||
|
|
||||||
|
### Rewriting a script shebang
|
||||||
|
|
||||||
|
Some formulae install executable scripts written in an interpreted language such as Python or Perl. Homebrew provides a `rewrite_shebang` method to rewrite the shebang of a script. This replaces a script's original interpreter path with the one the formula depends on. This guarantees that the correct interpreter is used at execution time. This isn't required if the build system already handles it (e.g. often with `pip` or Perl `ExtUtils::MakeMaker`).
|
||||||
|
|
||||||
|
For example, the [`icdiff` formula](https://github.com/Homebrew/homebrew-core/blob/7beae5ab57c65249403699b2b0700fbccf14e6cb/Formula/icdiff.rb#L16) uses such utility. Note that it is necessary to include the utility in the formula, for example with Python one must use `include Language::Python::Shebang`.
|
||||||
|
|
||||||
### Handling files that should persist over formula upgrades
|
### Handling files that should persist over formula upgrades
|
||||||
|
|
||||||
For example, Ruby 1.9’s gems should be installed to `var/lib/ruby/` so that gems don’t need to be reinstalled when upgrading Ruby. You can usually do this with symlink trickery, or (ideally) a configure option.
|
For example, Ruby 1.9’s gems should be installed to `var/lib/ruby/` so that gems don’t need to be reinstalled when upgrading Ruby. You can usually do this with symlink trickery, or (ideally) a configure option.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user