2

我正在尝试在 RedHat 5 上以普通用户身份安装 TCL/TK:

TCL_VERSION=8.6.1
BASE_PATH=/myownpath

tar -xzf tcl${TCL_VERSION}-src.tar.gz
cd tcl${TCL_VERSION}/unix
./configure \
    --prefix=${BASE_PATH} \
    --without-tzdata \
    --enable-64bit
make -j9
sed -e "s@^\(TCL_SRC_DIR='\).*@\1${BASE_PATH}'@" \
    -e "/TCL_B/s@='\(-L\)\?.*unix@='\1${BASE_PATH}/lib@" \
    -i tclConfig.sh
make install
make install-private-headers
chmod -v 755 ${BASE_PATH}/lib/libtcl*.so

到目前为止一切顺利: ${BASE_PATH}/include/tcl.h 存在并且 ${BASE_PATH}/lib/tclConfig.sh 看起来不错:

# String to pass to the compiler so that an extension can
# find installed Tcl headers.
TCL_INCLUDE_SPEC='-I/myownpath/include'

然后我尝试安装TK:

tar -xzf tk${TCL_VERSION}-src.tar.gz
cd tk${TCL_VERSION}/unix 
./configure \
    --prefix=${BASE_PATH} \
    --enable-64bit \
    --with-tcl=${BASE_PATH}/lib \
make -j9
sed -e "s@^\(TK_SRC_DIR='\).*@\1${BASE_PATH}'@" \
    -e "/TK_B/s@='\(-L\)\?.*unix@='\1${BASE_PATH}/lib@" \
    -i tkConfig.sh
make install
make install-private-headers
chmod -v 755 ${BASE_PATH}/lib/libtk*.so

它在 make 失败并显示以下消息:

tk8.6.1/unix/../generic/tk.h:19:17: error: tcl.h: No such file or directory

我错过了什么?!?

4

2 回答 2

1

我按照以下步骤在 Linux(Ubuntu)上安装 tcl、tk。请使用 sudo 避免任何与权限相关的问题 创建您选择的目录,例如 /opt/tcltk

安装tcl

  1. 创建目录 /opt/tcltk
  2. 从 ( http://www.tcl.tk/software/tcltk/download.html )下载 tcl8.6.9-src.tar.gz, tk8.6.9.1-src.tar.gz
  3. 在 opt/tcltk/ 中移动这两个 tar 文件
  4. cd /opt/tcltk/ 安装 tcl8.6.9
  5. /opt/tcltk> sudo gunzip -c tcl8.6.9-src.tar.gz | 焦油 -xf -
  6. cd /opt/tcltk/tcl8.6.9/unix/
  7. /opt/tcltk/tcl8.6.9/unix> sudo ./configure --prefix=/opt/tcltk
  8. /opt/tcltk/tcl8.6.9/unix> sudo make
  9. 可选,您可以通过执行“sudo make test”来检查 make</li>
  10. /opt/tcltk/tcl8.6.9/unix> sudo make install
  11. 通过在 cli 上执行“/opt/tcltk/bin/tclsh8.6”来验证安装

安装 tk

  1. cd /opt/tcltk/ 提取 tk tar

  2. /opt/tcltk/>sudo gunzip -c tk8.6.9.1-src.tar.gz | 焦油 -xf -

  3. /opt/tcltk/tk8.6.9/unix>sudo ./configure --prefix=/opt/tcltk

  4. /opt/degrib/tcltk/tk8.6.9/unix>sudo make

  5. 须藤使安装

安装过程中有任何问题欢迎评论

于 2019-02-14T07:25:51.090 回答
0

如果你想以普通用户的身份安装 Tcl,从源代码分发开始很容易(你需要选择你想要的版本;我现在一般推荐 8.6.1,但这是一个推荐一定会随着时间而改变)。

然后,切换到unix解压后的源代码发行版中的目录并运行./configure重要提示:要以非 root 身份安装,您必须指定--prefix选项以configure说明将要安装的位置,并且必须将其指定为完整路径。例如,如果我要将它安装在我的主目录下,我会使用:

./configure --prefix=/home/dkf

然后,只需执行makeand make install。或者合并为一个为make all install; 如果您不是以其他用户身份安装,则可以一步完成。在此之后,我会发现我可以运行 Tcl 8.6.1/home/dkf/bin/tclsh8.6和二进制库,并且tclConfig.sh将在/home/dkf/lib; 以明显的方式调整您指定的路径。如果不指定--prefix,则源分发/usr/local默认使用,但该目录通常只能由 root 用户写入。

您必须像这样指定路径的原因是 Tcl 支持脚本的路径被烘焙到二进制库中。(它是运行时可覆盖的,但我不建议您这样做,因为您可以轻松地开始做正确的事情。)


在构建 Tk 时,您需要一个同级Tcl 构建。目前,建议您也将它们设为相同版本。您还应该指定--with-tcl=并提供tclConfig.sh刚刚安装的路径;虽然它可能在没有的情况下工作,但这样做是最简单的。一旦您构建并安装了 Tcl 和 Tk,您(可能)就不需要保留源代码树了。

好吧,我承认我确实保留了它们,但我是数据打包者……</p>

于 2013-10-04T08:55:31.363 回答