繁体   English   中英

没有root用户安装TCL / TK

[英]Install TCL/TK without root

我正在尝试以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

失败并显示以下消息:

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

我错过了什么?!?

我按照以下步骤在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
  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. 须藤使安装

如果在安装过程中出现任何问题,请发表评论

如果您想以普通用户身份安装Tcl,从源代码发行版开始就很容易做到(您需要选择所需的版本;我现在一般建议使用8.6.1,但这是一个建议势必会随着时间而改变)。

然后,转到解压缩的源分发版中的unix目录并运行./configure 重要说明:要以非root用户身份安装, 必须指定--prefix选项进行configure以说出要安装的位置,并且必须将其指定为完整路径。 例如,如果要将其安装在主目录下,则可以使用:

./configure --prefix=/home/dkf

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

您必须指定这样的路径的原因是,Tcl的支持脚本的路径已包含在二进制库中。 (它是运行时可重写的,但是当您可以轻松地从头开始时就不建议这样做。)


构建Tk时,您需要同级的 Tcl构建。 当前,建议您也使它们具有相同的版本。 您还应该指定--with-tcl=并提供刚刚安装的tclConfig.sh的路径。 尽管可能无法正常运行,但是以这种方式执行是最简单的。 一旦构建并安装了Tcl和Tk,您(可能)就不需要保留源代码树了。

好的,我承认我确实在附近,但是我是一个数据包…

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM