从源代码编译

从源代码编译

经过一番搜索,我发现没有足够简单的算法来指导如何在 Ubuntu 中安装 Asymptote。(我需要更新它 - 这是一条建议来自这个论坛)。

主要的Asymptote 网站允许下载一个文件夹(我下载了),里面有很多文件,但我不知道该怎么处理。我能做的是:

  1. 我可以使用 Ubuntu 软件存储库。它没有最新的 Asymptote。
  2. 我可以在终端中输入命令。但我还没有在 Google 上搜索到任何可以输入的内容。

我发现最合理的指示是这里。它们很清晰,我可以管理它们。但是,它们安装了 Asymptote 2.41。但我需要最新版本。我不知道如何向终端解释我需要最新版本,即使我已经在 Desktop/asymptote-2.62 下载了它。 在此处输入图片描述

简而言之:如何安装最新版本的 Asymptote(目前为 2.62)?

Ubuntu 18.04、Gnome、TexStudio、texlive-full......我还应该提供什么来使技术细节清晰。

更新:我努力想弄明白 Asymptote 网站手册,但徒劳无功。当它没有按预期进行时,我就会迷失方向。 在此处输入图片描述

这是config.log:

This file contains any messages produced by compilers while running
configure, to aid debugging if configure makes a mistake.

It was created by Asymptote configure 2.64, which was generated by GNU
Autoconf 2.69.  Invocation command line was

  $ ./configure --prefix=/home/sergey/.local/

## --------- ##
## Platform. ##
## --------- ##

hostname = sergey-Inspiron-3252 uname -m = x86_64 uname -r =
5.3.0-40-generic uname -s = Linux uname -v = #32~18.04.1-Ubuntu SMP Mon Feb 3 14:05:59 UTC 2020

/usr/bin/uname -p = unknown /bin/uname -X     = unknown

/bin/arch              = unknown /usr/bin/arch -k       = unknown
/usr/convex/getsysinfo = unknown /usr/bin/hostinfo      = unknown
/bin/machine           = unknown /usr/bin/oslevel       = unknown
/bin/universe          = unknown

PATH: /usr/local/sbin PATH: /usr/local/bin PATH: /usr/sbin PATH:
/usr/bin PATH: /sbin PATH: /bin PATH: /usr/games PATH:
/usr/local/games PATH: /snap/bin


## ----------- ##
## Core tests. ##
## ----------- ##

configure:2567: checking for gcc configure:2597: result: no
configure:2660: checking for cc configure:2707: result: no
configure:2763: checking for cl.exe configure:2793: result: no
configure:2817: error: in `/home/sergey/asymptote-2.64':
configure:2819: error: no acceptable C compiler found in $PATH See
`config.log' for more details

## ---------------- ##
## Cache variables. ##
## ---------------- ##

ac_cv_env_CCC_set= ac_cv_env_CCC_value= ac_cv_env_CC_set=
ac_cv_env_CC_value= ac_cv_env_CFLAGS_set= ac_cv_env_CFLAGS_value=
ac_cv_env_CPPFLAGS_set= ac_cv_env_CPPFLAGS_value= ac_cv_env_CPP_set=
ac_cv_env_CPP_value= ac_cv_env_CXXCPP_set= ac_cv_env_CXXCPP_value=
ac_cv_env_CXXFLAGS_set= ac_cv_env_CXXFLAGS_value= ac_cv_env_CXX_set=
ac_cv_env_CXX_value= ac_cv_env_LDFLAGS_set= ac_cv_env_LDFLAGS_value=
ac_cv_env_LIBS_set= ac_cv_env_LIBS_value= ac_cv_env_YACC_set=
ac_cv_env_YACC_value= ac_cv_env_YFLAGS_set= ac_cv_env_YFLAGS_value=
ac_cv_env_build_alias_set= ac_cv_env_build_alias_value=
ac_cv_env_host_alias_set= ac_cv_env_host_alias_value=
ac_cv_env_target_alias_set= ac_cv_env_target_alias_value=

## ----------------- ##
## Output variables. ##
## ----------------- ##

ASYGLVERSION='' ATOMICVERSION='' CC='' CFLAGS='-g -O3' CPP=''
CPPFLAGS='' CXX='' CXXCPP='' CXXFLAGS='-std=c++11' DEFS='' Datadir=''
ECHO_C='' ECHO_N='-n' ECHO_T='' EGREP='' EXEEXT='' GCLIB=''
GCOPTIONS='' GCPPLIB='' GCVERSION='' GLEW='' GREP='' INCL=''
INSTALL_DATA='' INSTALL_PROGRAM='' INSTALL_SCRIPT='' LDFLAGS='' LEX=''
LEXLIB='' LEX_OUTPUT_ROOT='' LIBOBJS='' LIBS='' LTLIBOBJS='' OBJEXT=''
OPTIONS=''
PACKAGE_BUGREPORT='http://sourceforge.net/projects/asymptote'
PACKAGE_NAME='Asymptote' PACKAGE_STRING='Asymptote 2.64'
PACKAGE_TARNAME='asymptote' PACKAGE_URL='' PACKAGE_VERSION='2.64'
PATH_SEPARATOR=':' PTHREAD_CC='' PTHREAD_CFLAGS='' PTHREAD_LIBS=''
SET_MAKE='' SHELL='/bin/bash' TEXI2DVI='' VERSION='2.64' YACC=''
YFLAGS='' ac_ct_CC='' ac_ct_CXX='' ax_pthread_config=''
bindir='${exec_prefix}/bin' build='' build_alias='' build_cpu=''
build_os='' build_vendor='' contextdir='' datadir='${datarootdir}'
datarootdir='${prefix}/share'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' dvidir='${docdir}'
exec_prefix='NONE' getopt='' host='' host_alias='' host_cpu=''
host_os='' host_vendor='' htmldir='${docdir}'
includedir='${prefix}/include' infodir='${datarootdir}/info'
kpsewhich='' latexdir='' libdir='${exec_prefix}/lib'
libexecdir='${exec_prefix}/libexec' localedir='${datarootdir}/locale'
localstatedir='${prefix}/var' mandir='${datarootdir}/man'
oldincludedir='/usr/include' pdfdir='${docdir}'
prefix='/home/sergey/.local' program_transform_name='s,x,x,'
psdir='${docdir}' sbindir='${exec_prefix}/sbin'
sharedstatedir='${prefix}/com' sysconfdir='${prefix}/etc'
target_alias=''

## ----------- ##
## confdefs.h. ##
## ----------- ##

/* confdefs.h */
#define PACKAGE_NAME "Asymptote"
#define PACKAGE_TARNAME "asymptote"
#define PACKAGE_VERSION "2.64"
#define PACKAGE_STRING "Asymptote 2.64"

更新。问题在于缺少 C 编译器。对于未来版本:请确保您已安装它。这是我的做法,并且成功了:

首先更新包列表:

sudo apt update

输入以下命令安装 build-essential 包:

sudo apt install build-essential

该命令安装了一堆新软件包,包括 gcc、g++ 和 make。

您可能还想安装有关使用 GNU/Linux 进行开发的手册页:

sudo apt-get install manpages-dev

要验证 GCC 编译器是否成功安装,请使用 gcc --version 命令打印 GCC 版本:

gcc --version

Ubuntu 18.04 存储库中可用的 GCC 默认版本是 7.4.0:

gcc (Ubuntu 7.4.0-1ubuntu1~18.04) 7.4.0 Copyright (C) 2017 Free
Software Foundation, Inc. This is free software; see the source for
copying conditions.  There is NO warranty; not even for
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

虽然!当我按照@oliversm 的回复执行最后一步时,我得到了以下结果

make install

在此处输入图片描述

@oliversm,现在出了什么问题?

答案1

从源代码编译

这本来是一条评论vonbrand 的回答但最终它还是太大了。

该文件doc/FAC/asy-faq.ascii(或我认为的类似版本)可以在以下位置找到:github页面上,我认为他们的相关信息常见问题解答页面。同样,他们有一个关于如何在 Unix 上从源代码编译。尝试按照说明操作,但结果是:

  1. 将文件解压到您想要的任何位置(例如/home/user/)。我得到了来自 SourceForge 的文件但 Github 上的也可以。
  2. 打开终端/path/to/asymptote-2.62(可以用鼠标右键单击或cd asymptote-2.62/)。
  3. 运行./configure --prefix=/home/user/.local/,但如果您想要这个系统范围的那么您可能能够将其更改为./configure --prefix=/usr
  4. make(或者make all
  5. make install

步骤 3-5 可能需要几分钟(在我的计算机上大约需要 5 分钟)。

在我的计算机上完成此操作后,我可以运行~/.local/bin/asy --version以查看是否已安装正确的版本 (2.62)。如果您想确保使用的是这个版本而不是较旧的系统版本(我的系统在 下也有 2.44 /usr/bin/),那么使用符号链接ln -s就可以解决问题,如果您要覆盖 下的项目,则需要 sudo /usr您应该更新PATH。(例如export PATH=${HOME}/.local/bin:${PATH},可以将其添加到您的.bashrc文件或类似文件中)。

答案2

抓住源头来自 git或者SourceForge,该文件doc/FAQ/asy-faq.ascii包含详细的安装说明。

如果您需要将其集成到您的系统中,我建议您研究如何创建自己的软件包(抱歉,不知道 Debian/Ubuntu),获取发行版的源包,解压并针对新版本进行编辑和构建。

答案3

截至撰写本文时(2021 年 1 月),它在 Ubuntu 20.04 上可用,并且可以使用 轻松安装sudo apt install asymptote

相关内容