Linuxbrew / brew

:beer::penguin: The Homebrew package manager for Linux
https://linuxbrew.sh
BSD 2-Clause "Simplified" License
2.66k stars 236 forks source link

Curl failed to build on RHEL 5.10 #231

Closed nickfraser closed 7 years ago

nickfraser commented 7 years ago

Please follow the general troubleshooting steps first:

Bug reports:

I get the following error while trying to compile curl on a RHEL 5.10 system:

../libtool: line 7474: cd: @@HOMEBREW_CELLAR@@/zlib/1.2.8/lib: No such file or directory
libtool:   error: cannot determine absolute directory name of '@@HOMEBREW_CELLAR@@/zlib/1.2.8/lib'
make[1]: *** [libcurl.la] Error 1
make[1]: Leaving directory `/tmp/curl-20170116-9839-12emwrt/curl-7.52.1/lib'
make: *** [install-recursive] Error 1

I have very old tools on this system, but I've managed to get several packages installed (using LinuxBrew) including: glibc, gcc and python. zlib appears to be installed, as it's required by gcc and gcc works! Another warning / error I get (which may be related) is when pouring several bottles I get the following message:

==> Pouring zlib-1.2.8.x86_64_linux.bottle.1.tar.gz
/usr/bin/file: unrecognized option `--print0'
Usage: file [-bcikLhnNsvz] [-f namefile] [-F separator] [-m magicfiles] file...
       file -C -m magicfiles
Try `file --help' for more information.`

I've tried installing libmagic, in the hope it would provide a new 'file' executable, but it doesn't appear to install one (maybe I can change the formula somehow to get it to work?) Otherwise, I've tried reinstalling everything from scratch twice. I've also managed to get curl to install on two other systems running RHEL 6.x and everything went smoothly.

HOMEBREW_VERSION: >1.1.0 (no git repository)
ORIGIN: https://github.com/Linuxbrew/brew
HEAD: db9437412ba668fbcf8da8b8279427d9440e896b
Last commit: 4 days ago
Core tap ORIGIN: https://github.com/Linuxbrew/homebrew-core
Core tap HEAD: 8c2dbf9ae3701bc51d7d228a023c9cf418acce75
Core tap last commit: 2 hours ago
HOMEBREW_PREFIX: /home/nfraser/.linuxbrew
HOMEBREW_REPOSITORY: /home/nfraser/.linuxbrew
HOMEBREW_CELLAR: /home/nfraser/.linuxbrew/Cellar
HOMEBREW_BOTTLE_DOMAIN: https://linuxbrew.bintray.com
CPU: 48-core 64-bit nehalem
Homebrew Ruby: 2.0.0-p648 => /home/nfraser/.linuxbrew/Library/Homebrew/vendor/portable-ruby/2.0.0-p648/bin/ruby
Clang: N/A
Git: 1.9.5 => /tools/build/bin/git
Perl: /usr/local/bin/perl => /tools/build/bin/perl
Python: /home/nfraser/.linuxbrew/bin/python => /home/nfraser/.linuxbrew/Cellar/python/2.7.13/bin/python2.7
Ruby: /usr/bin/ruby
Java: 1.5.0_11
Kernel: Linux 2.6.18-308.el5 x86_64 GNU/Linux
OS: Red Hat Enterprise Linux Client release 5.10 (Tikanga)
Codename: Tikanga
OS glibc: 2.5
OS gcc: 4.1.2
Linuxbrew glibc: 2.19
Linuxbrew gcc: 5.3.0
Linuxbrew xorg: N/A
Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry and just ignore them. Thanks!

Warning: "config" scripts exist outside your system or Homebrew directories.
`./configure` scripts often look for *-config scripts to determine if
software packages are installed, and what additional flags to use when
compiling and linking.

Having additional scripts in your path can confuse software installed via
Homebrew if the config script overrides a system or Homebrew provided
script of the same name. We found the following "config" scripts:
  /tools/build/perforce-2013.1/bin/p4sandbox-config

Warning: Unbrewed header files were found in /usr/local/include.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.

Unexpected header files:
  /usr/local/include/Mrm/MrmAppl.h
  /usr/local/include/Mrm/MrmDecls.h
  /usr/local/include/Mrm/MrmPublic.h
  /usr/local/include/Mrm/MrmosI.h
  /usr/local/include/Xm/AccColorT.h
  /usr/local/include/Xm/AccTextT.h
  /usr/local/include/Xm/ActivatableT.h
  /usr/local/include/Xm/ArrowB.h
  /usr/local/include/Xm/ArrowBG.h
  /usr/local/include/Xm/ArrowBGP.h
  /usr/local/include/Xm/ArrowBP.h
  /usr/local/include/Xm/AtomMgr.h
  /usr/local/include/Xm/BaseClassP.h
  /usr/local/include/Xm/BulletinB.h
  /usr/local/include/Xm/BulletinBP.h
  /usr/local/include/Xm/ButtonBox.h
  /usr/local/include/Xm/ButtonBoxP.h
  /usr/local/include/Xm/CacheP.h
  /usr/local/include/Xm/CareVisualT.h
  /usr/local/include/Xm/CascadeB.h
  /usr/local/include/Xm/CascadeBG.h
  /usr/local/include/Xm/CascadeBGP.h
  /usr/local/include/Xm/CascadeBP.h
  /usr/local/include/Xm/ClipWindowP.h
  /usr/local/include/Xm/ColorObjP.h
  /usr/local/include/Xm/ColorP.h
  /usr/local/include/Xm/ColorS.h
  /usr/local/include/Xm/ColorSP.h
  /usr/local/include/Xm/Column.h
  /usr/local/include/Xm/ColumnP.h
  /usr/local/include/Xm/ComboBox.h
  /usr/local/include/Xm/ComboBox2.h
  /usr/local/include/Xm/ComboBox2P.h
  /usr/local/include/Xm/ComboBoxP.h
  /usr/local/include/Xm/Command.h
  /usr/local/include/Xm/CommandP.h
  /usr/local/include/Xm/ContItemT.h
  /usr/local/include/Xm/Container.h
  /usr/local/include/Xm/ContainerP.h
  /usr/local/include/Xm/ContainerT.h
  /usr/local/include/Xm/CutPaste.h
  /usr/local/include/Xm/DataF.h
  /usr/local/include/Xm/DataFP.h
  /usr/local/include/Xm/DataFSelP.h
  /usr/local/include/Xm/DesktopP.h
  /usr/local/include/Xm/DialogS.h
  /usr/local/include/Xm/DialogSEP.h
  /usr/local/include/Xm/DialogSP.h
  /usr/local/include/Xm/DialogSavvyT.h
  /usr/local/include/Xm/Display.h
  /usr/local/include/Xm/DisplayP.h
  /usr/local/include/Xm/DragC.h
  /usr/local/include/Xm/DragCP.h
  /usr/local/include/Xm/DragDrop.h
  /usr/local/include/Xm/DragIcon.h
  /usr/local/include/Xm/DragIconP.h
  /usr/local/include/Xm/DragOverS.h
  /usr/local/include/Xm/DragOverSP.h
  /usr/local/include/Xm/DrawP.h
  /usr/local/include/Xm/DrawUtils.h
  /usr/local/include/Xm/DrawingA.h
  /usr/local/include/Xm/DrawingAP.h
  /usr/local/include/Xm/DrawnB.h
  /usr/local/include/Xm/DrawnBP.h
  /usr/local/include/Xm/DropSMgr.h
  /usr/local/include/Xm/DropSMgrP.h
  /usr/local/include/Xm/DropTrans.h
  /usr/local/include/Xm/DropTransP.h
  /usr/local/include/Xm/Ext.h
  /usr/local/include/Xm/Ext18List.h
  /usr/local/include/Xm/Ext18ListP.h
  /usr/local/include/Xm/ExtObjectP.h
  /usr/local/include/Xm/ExtP.h
  /usr/local/include/Xm/FileSB.h
  /usr/local/include/Xm/FileSBP.h
  /usr/local/include/Xm/FontS.h
  /usr/local/include/Xm/FontSP.h
  /usr/local/include/Xm/Form.h
  /usr/local/include/Xm/FormP.h
  /usr/local/include/Xm/Frame.h
  /usr/local/include/Xm/FrameP.h
  /usr/local/include/Xm/Gadget.h
  /usr/local/include/Xm/GadgetP.h
  /usr/local/include/Xm/GrabShell.h
  /usr/local/include/Xm/GrabShellP.h
  /usr/local/include/Xm/Hierarchy.h
  /usr/local/include/Xm/HierarchyP.h
  /usr/local/include/Xm/IconBox.h
  /usr/local/include/Xm/IconBoxP.h
  /usr/local/include/Xm/IconButton.h
  /usr/local/include/Xm/IconButtonP.h
  /usr/local/include/Xm/IconFile.h
  /usr/local/include/Xm/IconFileP.h
  /usr/local/include/Xm/IconG.h
  /usr/local/include/Xm/IconGP.h
  /usr/local/include/Xm/IconH.h
  /usr/local/include/Xm/IconHP.h
  /usr/local/include/Xm/JoinSideT.h
  /usr/local/include/Xm/Label.h
  /usr/local/include/Xm/LabelG.h
  /usr/local/include/Xm/LabelGP.h
  /usr/local/include/Xm/LabelP.h
  /usr/local/include/Xm/LayoutT.h
  /usr/local/include/Xm/List.h
  /usr/local/include/Xm/ListP.h
  /usr/local/include/Xm/MainW.h
  /usr/local/include/Xm/MainWP.h
  /usr/local/include/Xm/Manager.h
  /usr/local/include/Xm/ManagerP.h
  /usr/local/include/Xm/MenuProcP.h
  /usr/local/include/Xm/MenuShell.h
  /usr/local/include/Xm/MenuShellP.h
  /usr/local/include/Xm/MenuStateP.h
  /usr/local/include/Xm/MenuT.h
  /usr/local/include/Xm/MenuUtilP.h
  /usr/local/include/Xm/MessageB.h
  /usr/local/include/Xm/MessageBP.h
  /usr/local/include/Xm/MwmUtil.h
  /usr/local/include/Xm/NavigatorT.h
  /usr/local/include/Xm/Notebook.h
  /usr/local/include/Xm/NotebookP.h
  /usr/local/include/Xm/Outline.h
  /usr/local/include/Xm/OutlineP.h
  /usr/local/include/Xm/Paned.h
  /usr/local/include/Xm/PanedP.h
  /usr/local/include/Xm/PanedW.h
  /usr/local/include/Xm/PanedWP.h
  /usr/local/include/Xm/Picture.h
  /usr/local/include/Xm/PictureP.h
  /usr/local/include/Xm/PointInT.h
  /usr/local/include/Xm/Primitive.h
  /usr/local/include/Xm/PrimitiveP.h
  /usr/local/include/Xm/Print.h
  /usr/local/include/Xm/PrintSP.h
  /usr/local/include/Xm/Protocols.h
  /usr/local/include/Xm/ProtocolsP.h
  /usr/local/include/Xm/PushB.h
  /usr/local/include/Xm/PushBG.h
  /usr/local/include/Xm/PushBGP.h
  /usr/local/include/Xm/PushBP.h
  /usr/local/include/Xm/RCLayoutP.h
  /usr/local/include/Xm/RCMenuP.h
  /usr/local/include/Xm/RepType.h
  /usr/local/include/Xm/RowColumn.h
  /usr/local/include/Xm/RowColumnP.h
  /usr/local/include/Xm/SSpinB.h
  /usr/local/include/Xm/SSpinBP.h
  /usr/local/include/Xm/SashP.h
  /usr/local/include/Xm/Scale.h
  /usr/local/include/Xm/ScaleP.h
  /usr/local/include/Xm/Screen.h
  /usr/local/include/Xm/ScreenP.h
  /usr/local/include/Xm/ScrollBar.h
  /usr/local/include/Xm/ScrollBarP.h
  /usr/local/include/Xm/ScrollFrameT.h
  /usr/local/include/Xm/ScrolledW.h
  /usr/local/include/Xm/ScrolledWP.h
  /usr/local/include/Xm/SelectioB.h
  /usr/local/include/Xm/SelectioBP.h
  /usr/local/include/Xm/SeparatoG.h
  /usr/local/include/Xm/SeparatoGP.h
  /usr/local/include/Xm/Separator.h
  /usr/local/include/Xm/SeparatorP.h
  /usr/local/include/Xm/ShellEP.h
  /usr/local/include/Xm/SlideC.h
  /usr/local/include/Xm/SlideCP.h
  /usr/local/include/Xm/SpecRenderT.h
  /usr/local/include/Xm/SpinB.h
  /usr/local/include/Xm/SpinBP.h
  /usr/local/include/Xm/TabBox.h
  /usr/local/include/Xm/TabBoxP.h
  /usr/local/include/Xm/TabList.h
  /usr/local/include/Xm/TabStack.h
  /usr/local/include/Xm/TabStackP.h
  /usr/local/include/Xm/Table.h
  /usr/local/include/Xm/TableP.h
  /usr/local/include/Xm/TakesDefT.h
  /usr/local/include/Xm/TearOffBP.h
  /usr/local/include/Xm/TearOffP.h
  /usr/local/include/Xm/Text.h
  /usr/local/include/Xm/TextF.h
  /usr/local/include/Xm/TextFP.h
  /usr/local/include/Xm/TextFSelP.h
  /usr/local/include/Xm/TextInP.h
  /usr/local/include/Xm/TextOutP.h
  /usr/local/include/Xm/TextP.h
  /usr/local/include/Xm/TextSelP.h
  /usr/local/include/Xm/TextStrSoP.h
  /usr/local/include/Xm/ToggleB.h
  /usr/local/include/Xm/ToggleBG.h
  /usr/local/include/Xm/ToggleBGP.h
  /usr/local/include/Xm/ToggleBP.h
  /usr/local/include/Xm/TraitP.h
  /usr/local/include/Xm/Transfer.h
  /usr/local/include/Xm/TransferP.h
  /usr/local/include/Xm/TransferT.h
  /usr/local/include/Xm/TransltnsP.h
  /usr/local/include/Xm/TravConT.h
  /usr/local/include/Xm/Tree.h
  /usr/local/include/Xm/TreeP.h
  /usr/local/include/Xm/TxtPropCv.h
  /usr/local/include/Xm/UnhighlightT.h
  /usr/local/include/Xm/UnitTypeT.h
  /usr/local/include/Xm/VaSimpleP.h
  /usr/local/include/Xm/VendorS.h
  /usr/local/include/Xm/VendorSEP.h
  /usr/local/include/Xm/VendorSP.h
  /usr/local/include/Xm/VirtKeys.h
  /usr/local/include/Xm/VirtKeysP.h
  /usr/local/include/Xm/Xm.h
  /usr/local/include/Xm/XmAll.h
  /usr/local/include/Xm/XmIm.h
  /usr/local/include/Xm/XmP.h
  /usr/local/include/Xm/XmStrDefs.h
  /usr/local/include/Xm/Xmfuncs.h
  /usr/local/include/Xm/XmosP.h
  /usr/local/include/Xm/XpmP.h
  /usr/local/include/Xm/xmlist.h
  /usr/local/include/ao/os_types.h
  /usr/local/include/ao/ao.h
  /usr/local/include/lame/lame.h
  /usr/local/include/ogg/config_types.h
  /usr/local/include/ogg/ogg.h
  /usr/local/include/ogg/os_types.h
  /usr/local/include/uil/UilDBDef.h
  /usr/local/include/uil/Uil.h
  /usr/local/include/uil/UilSymDef.h
  /usr/local/include/uil/UilDef.h
  /usr/local/include/uil/UilSymGl.h
  /usr/local/include/vorbis/vorbisenc.h
  /usr/local/include/vorbis/codec.h
  /usr/local/include/vorbis/vorbisfile.h
  /usr/local/include/platform.h
  /usr/local/include/buffio.h
  /usr/local/include/expat.h
  /usr/local/include/fileio.h
  /usr/local/include/tidyenum.h
  /usr/local/include/socks.h
  /usr/local/include/tidy.h
  /usr/local/include/valgrind.h

Warning: Unbrewed .la files were found in /usr/local/lib.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.

Unexpected .la files:
  /usr/local/lib/libMrm.la
  /usr/local/lib/libUil.la
  /usr/local/lib/libXm.la
  /usr/local/lib/libao.la
  /usr/local/lib/libexpat.la
  /usr/local/lib/libmp3lame.la
  /usr/local/lib/libogg.la
  /usr/local/lib/libtidy.la
  /usr/local/lib/libvorbis.la
  /usr/local/lib/libvorbisenc.la
  /usr/local/lib/libvorbisfile.la

Warning: Unbrewed static libraries were found in /usr/local/lib.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.

Unexpected static libraries:
  /usr/local/lib/libMrm.a
  /usr/local/lib/libUil.a
  /usr/local/lib/libXm.a
  /usr/local/lib/libexpat.a
  /usr/local/lib/libmp3lame.a
  /usr/local/lib/libogg.a
  /usr/local/lib/libsocks5.a
  /usr/local/lib/libtidy.a
  /usr/local/lib/libvorbis.a
  /usr/local/lib/libvorbisenc.a
  /usr/local/lib/libvorbisfile.a
sjackman commented 7 years ago

Try

brew install homebrew/dupes/file-formula
brew install curl

You may have to reinstall some other broken formula. It looks like zlib may be broken.

brew reinstall zlib
sjackman commented 7 years ago

Linuxbrew should give a better error message if file is missing or too old. Currently it installs bottles but then fails to correctly relocate the text files like *.pc files of pkg-config.

nickfraser commented 7 years ago

Thanks for your help! FYI, the steps you suggested didn't solve my issue.

homebrew/dupes/file-formula depends on zlib, so when you run brew reinstall zlib, it complains that libz.so.1 does not exist.

However, after knowing the issue was simply related to file, I got brew working by completing the following steps:

  1. Completely remove linuxbrew
  2. Compile file from source from ftp://ftp.astron.com/pub/file/ (I went for version 5.10) and add it to my PATH (before other paths)
  3. Reinstall linuxbrew

All packages appeared to install perfectly after this.

sjackman commented 7 years ago

Glad to hear that you got it working!