【问题标题】:ruby with tk support带有传统知识支持的红宝石
【发布时间】:2019-06-12 03:39:39
【问题描述】:

我正在关注需要rubytk 支持的programming languages course。我的笔记本电脑运行nixos。简单地将 tk 和 ruby​​ 添加到我的系统包中并不能解决问题。用两者创建一个 nix-shell 也不行。我将如何构建一个使用 tk 支持编译 ruby​​ 的派生?

shell.nix

{ pkgs ? import <nixpkgs> {} }:

with pkgs;

let
  myRuby = ruby_2_3.overrideAttrs (old: {
    configureFlags = [
      "--with-tcl-dir=${tcl}"
      "--with-tk-dir=${tk}"
      "--enable-tcl-thread"
      "--enable-pthread"
    ];
    buildInputs = [
      ruby_2_3
      zlib
      gdbm
      libffi
      openssl
      readline
    ];
    propagatedBuildInputs = [
      tk
      tcl
    ];

  });

in
  mkShell {
    buildInputs = [ myRuby tk tcl ];
  }

test.rb

#!/usr/bin/env ruby
 require 'tk'
 root = TkRoot.new do
   title "Ruby/Tk Test"
 end
 Tk.mainloop

【问题讨论】:

  • 我不能专门为 NixOS 说话,但我相信 Ruby/tk 不再维护(几年了)。 Ruby 的 GUI 情况令人震惊,没有太多积极的前景。 Qt4 有一些不错的绑定,当需要 GUI 时,它们可能是最广泛使用的绑定,但即使它们已经过时,构建在较旧的技术之上。可悲的是,尝试使用 Ruby 实现现代 GUI 是一种自虐形式。
  • @ForeverZer0 我正在按照课程说明使用 ruby​​-2.3
  • 你可以尝试在github.com/ruby/tk 上打开一个问题,但考虑到最后一次提交已经超过 1 年,我也担心它不再被维护了。我的印象是 ActiveState 仍然支持它,而且由于他们声称也支持 Linux,这可能是一个选择。当然,这意味着您还必须安装 Ruby 和 Tcl 的 ActiveState 端口。您可能想先在code.activestate.com/lists/ruby-talk 询问这是否可行。

标签: ruby tk nix


【解决方案1】:

我决定只构建一个派生并安装它。这行得通!

{ pkgs ? import <nixpkgs> {} }:

with pkgs;

let
  myRuby = ruby_2_3.overrideAttrs (old: {
    configureFlags = [
      "--with-tcl-dir=${tcl}"
      "--with-tk-dir=${tk}"
      "--enable-tcl-thread"
      "--enable-pthread"
    ];
    buildInputs = [
      ruby_2_3
      zlib
      gdbm
      libffi
      openssl
      readline
    ];
    propagatedBuildInputs = [
      tk
      tcl
    ];

  });

in
  myRuby

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 2016-02-15
    • 1970-01-01
    • 2019-08-09
    • 1970-01-01
    相关资源
    最近更新 更多