欧洲核子研究中心的根环境在 10.10 上安装良好,甚至可以在软件中心使用,但它无法在 Natty 上安装或编译,因为 x11 目录位于新位置。
我可以重新定义路径,但随后会出现编译错误,因为只有 gcc 4.3 才通过 ROOT 支持,而 Natty 使用 4.5。我已放弃并返回 10.10,但我的问题是,在 Maverick 上安装 ROOT 后,如果我升级回 Natty,我的旧软件是否仍能使用这些新目录路径?
答案1
遗憾的是,它root
不再存在于存储库中(适用于 Ubuntu 11.04)。这里有一种方法
如何安装root
在 Ubuntu Natty(x86)上:
依赖项:
sudo aptitude install gcc g++ make binutils \
libx11-dev libxpm-dev libxft-dev libxext-dev
可选依赖项:(我已经安装了)
sudo aptitude install cmake \
gsl-bin libgsl0-dev \
liblzma2 liblzma-dev \
libgmp3c2 libgmp3-dev \
libpcre3 libpcre3-dev \
zlib1g zlib1g-dev
如何安装:
wget ftp://root.cern.ch/root/root_v5.30.00.source.tar.gz
tar -xzvpf root_v5.30.00.source.tar.gz
cd root
WHERE_TO_INSTALL_ROOT=/usr/local ## feel free to change this
./configure linux \
--with-x11-libdir=/usr/lib/i386-linux-gnu \
--with-xft-libdir=/usr/lib/i386-linux-gnu \
--with-xext-libdir=/usr/lib/i386-linux-gnu \
--with-xrootd-opts=--syslibs=/usr/lib/i386-linux-gnu \
--prefix=$WHERE_TO_INSTALL_ROOT
make
# sudo make install ## sudo needed at least for for /etc/root
# NEVER use make install in modern distros. Instead use:
sudo checkinstall --pkgname=root-framework --fstrans=no --strip=no make install
sudo
cd $WHERE_TO_INSTALL_ROOT
source bin/thisroot.sh
root ## :-) works...
.Q // to quit root
注意:撰写本文时,5.30/00 是最新且推荐的版本。您可以随意将其更改为阅读本文时可用的其他版本(我建议推荐)。
答案2
您可以从此处下载已编译的软件包http://sourceforge.net/projects/cernrootdebs/ 非常简单。阅读说明。
回复 Roland Taylor:说明列在 Readme 文件中。安装只需双击 deb 存档即可。
引用:“此包将安装在 /opt/root 目录中,以免与 Ubuntu repos 提供的 Root 包冲突。因此,您可能需要在 /usr/bin 中创建一个符号链接;这是我的选择:
sudo ln -s /opt/root/bin/root /usr/bin/root-latest
因此您可以从 ubuntu repos 输入 root 来运行 root,或者在我的版本中输入 root-latest (要从我打包的先前版本升级,请先删除旧包)”
如果 root 无法启动,因为它找不到 libCore.so,但是 ~/.bashrc 中的这两行
export ROOTSYS=/opt/root/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ROOTSYS/lib/root:
启用对 asimage、astiff、builtin_afterimage、builtin_ftgl、builtin_glew、cintex、explicitlink、fftw3、genvector、krb5、mathmore、memstat、minuit2、opengl、pgsql、python、reflex、roofit、shadowpw、shared、ssl、tmva、unuran、x11、xft、xml 的支持。"
答案3
我在网上找到了一份相当简短的操作指南:http://www.thecampaign.eu/?p=73
从该页面开始:
在 Ubuntu 11.04 上编译 ROOT 5.28/00b (CERN) (Natty Narwhal) 2011 年 4 月 5 日 – 16:49
由于这个主题占用了我“非常”宝贵的时间,我将为您提供这个相当简单的问题的解决方案。它不会很长!
ROOT 无法在 Ubuntu 11.04 上编译,提示无法找到某些库(libX11.so、libXext.so 和 libXft.so)。要获取
./configure –prefix=/usr/local
–with-x11-libdir=/usr/lib/i386-linux-gnu –with-xft-libdir=/usr/lib/i386-linux-gnu –with-xext-libdir=/usr/lib/i386-linux-gnu –with-xrootd-opts=–syslibs=/usr/lib/i386-linux-gnu
要工作,只需通过向脚本添加读取的命令来告诉脚本在哪里找到那些不祥的库
./configure --with-x11-libdir=/usr/lib/i386-linux-gnu --with-xft-libdir=/usr/lib/i386-linux-gnu
--with-xext-libdir=/usr/lib/i386-linux-gnu --with-xrootd-opts=–syslibs=/usr/lib/i386-linux-gnu
--prefix=/usr/local
显然,Ubuntu 团队改变了 /usr/lib 目录的结构以实现系统架构之间的兼容性。
要记住的一条规则是,如果可能的话,手动定义每个功能的每个库路径。
再次强调,不要仅仅复制和粘贴上述命令,因为双行似乎被 WordPress 转换为长行。
要使其他一切正常工作,请按照我之前的帖子中有关 ROOT 的说明进行操作。
希望这能有效。