【问题标题】:how to update make 3.81 linux如何更新make 3.81 linux
【发布时间】:2015-11-01 22:26:36
【问题描述】:

我是 Linux 新手(昨天刚安装的),我在大学的编程课程中需要它,我被告知要安装特定程序的特定版本,但尽管我使用了 apt-get install 以安装它们(之前已完成 apt-get 更新)它们的版本不正确。

我需要的程序是 make 4.0 和 valgrind 3.10.1。

apt-get 安装 make 3.81 和 valgrind 3.10.0.SVN。

我尝试输入“apt-get install make4.0”和“apt-get install valgrind10.3.1”无济于事。我已经从互联网上下载了它们,并按照我能理解的说明安装新版本,但它一直说我有旧版本。 (我不确定我是否可以在这里发布直接链接,如果我可以让我知道,我会发布我从哪里获得它们的)。

我做错了什么?我该如何解决这个问题?

我目前正在运行 Linux Mint。

提前感谢您的任何回答。

【问题讨论】:

  • valgrind 的当前版本是 3.10.1,而不是 10.3.1。 GNU make 的当前版本是 4.1。您可以获取源代码,然后在您的机器上编译。这很可能是直截了当的。在现有软件上安装新版本之前请仔细考虑。我不会那样做;我会创建一个新目录,例如/usr/gnu/opt/software 并将新程序放在那里,并在我的PATH 中的标准位置之前添加/usr/gnu/bin/opt/software/bin。或者您可以使用 /usr/local — 或您想要的任何其他名称。
  • 对不起!那是我的阅读障碍症(或类似的东西),实际上我不得不阅读您的评论几次,然后才真正意识到您所写的数字顺序之间存在差异。我现在正确地写了“sudo apt-get install valgrind 3.10.1”,它做了一堆在我假设之前没有做过的事情,因为我输入了不同的数字,但是当我写“valgrind --version”时它仍然说“valgrind-3.10.0.SVN”:/。好的,这是我第一次来这里,我没有看到你的评论比这更大,现在去阅读它。
  • 版本号麻木可以折磨任何人。如果apt-get 不会获得新版本,那么它们还没有通过该机制正式提供给您。您需要确定较新的版本是否对您至关重要。如果没有,那就选择可用的——你已经拥有的。这是迄今为止最简单的。如果您认为新版本很关键,那么您必须自己获取代码并自行编译和安装。这不是很难,但比安装预建软件更难。我从 SVN 存储库的克隆中构建(不久前)的版本有 3.11.0.SVN。
  • 通用建议 if 您从源代码构建:使用--prefix=/opt/make,并将bin/ 添加到您的路径中。 从不对未通过您的发行版包管理器的任何内容使用默认前缀 (/usr)。那只是自找麻烦。如果分布赶上来,你可以rm /opt/make
  • 在实践中,对于您的初学者需求,make 3.81 版可能相当于make 4 版。所以我不会费心安装make-4

标签: linux makefile valgrind updates linux-mint


【解决方案1】:

由于长期未解决的 Debian 错误报告,GNU Make 在很长一段时间内仍然是 Debian 中古老的 3.81,因此,在 Ubuntu 和 Mint 等基于 Debian 的发行版中。

The latest Debian release, Jessie, has upgraded to 4.0,因此基于 Debian 的发行版将进行该升级。但是,it is better to use 4.1

这已在 GNU Make 邮件列表和elsewhere 上多次讨论。

所以要获得更新的版本,您必须从头开始编译它。 这很简单:

  1. 安装所需的软件包(gccmake 等)。
  2. 打开一个外壳(如果您使用的是 GUI,则打开一个终端窗口)。
  3. 键入以下命令(或等效的命令,例如,您可以使用 curl 代替 wget):

    cd /tmp
    wget http://ftp.gnu.org/gnu/make/make-4.1.tar.gz
    tar xvf make-4.1.tar.gz
    cd make-4.1/
    ./configure
    make
    sudo make install
    cd ..
    rm -rf make-4.1.tar.gz make-4.1
    

现在,make 4.1/usr/local/bin/make 中。

您可以使用whereis make 验证它是否存在。

您可以通过在您的 shell 启动文件中为您的 $PATH 变量添加前缀 /usr/local/bin 将其设为默认 make;例如,在 .profile.bashrc 中,如果您使用 bash shell。

不要尝试将自编译的make(或任何其他不是来自发行版包管理器的东西)安装到/bin/usr/bin;这样做会让你的包管理器感到困惑。

【讨论】:

  • Debian squeeze 和 wheezie 为 3.81,jesse / stretch 为 4.0。这或多或少与 GNU make 4.0(在 wheezie 之后和 jesse 之前发布)的发布同步。我很想知道您指的是哪个错误。有链接吗?
  • 哇!好消息。我已经修正了我的措辞并添加了一个链接到一个链接到错误报告的页面。
  • 你能解释一下如何让它成为我的默认值吗?我不知道这些文件在哪里,似乎找不到它们,我已经看到我可以通过终端本身添加它们,但我真的不明白怎么做,我不想尝试任何我想要的东西我不确定如果我改变了一些重要的事情会怎么做,拥有世界上所有的访问权限很酷,但这也很危险,因为我不知道我在做什么。
  • “那些文件”是什么意思?您可以通过设置$PATH 变量来设置可执行文件的搜索路径。您可以通过将变量设置放入您的 shell 在启动时自动读取的脚本中来使变量设置永久化。不同的 shell 读取不同的文件,它们读取的文件也取决于它们的启动方式。在您的 shell 的手册中查找详细信息。如果是bash,请输入man bash 获取手册。
猜你喜欢
  • 2016-10-23
  • 2023-04-09
  • 1970-01-01
  • 1970-01-01
  • 2023-03-24
  • 2021-02-16
  • 1970-01-01
  • 2014-01-05
  • 1970-01-01
相关资源
最近更新 更多