选择Linux发行版进行Haskell开发

时间:2022-11-13 17:04:03

Which Linux version is the most comfortable for haskell development? I want to install ghc and compile Leksah in it. I'm using CentOS now but it's repository is not rich and fresh enough.

哪个Linux版本最适合haskell开发?我想在其中安装ghc并编译Leksah。我现在使用CentOS,但它的存储库不够丰富和新鲜。

12 个解决方案

#1


28  

My current distro, Arch Linux, has extensive support for Haskell.

我目前的发行版Arch Linux对Haskell有广泛的支持。

You can see the status of directly available haskell packages here (at the time of writing, 1370 packages are available). There is also a wiki page about Haskell packages in Arch Linux.

您可以在这里看到直接可用的haskell包的状态(在撰写本文时,有1370个包可用)。在Arch Linux中还有一个关于Haskell包的wiki页面。

#2


7  

I plan to check NixOS. It has a purely functional package manager (supporting multiple versions and rollbacks), it's developed by Haskell programmers, and it has a few Haskell packages.

我打算检查一下NixOS。它有一个纯功能性的包管理器(支持多个版本和回滚),它是由Haskell程序员开发的,并且它有一些Haskell包。

It may not be the most complete in terms of number of packages, but it seems to be very interesting for Haskellers.

它可能不是最完整的软件包数量,但它似乎对Haskellers非常有趣。

#3


6  

I'm using Arch Linux, and while Haskell is well supported, with plenty of packages that are mostly fresh and up to date versions, there is a problem with versions and dependencies.

我使用的是Arch Linux,虽然Haskell得到了很好的支持,但是很多包都是最新的、最新的版本,但是版本和依赖关系有问题。

A typical Haskell package depends on several other packages. For example, it may depend on version 1.0.1. It's extremely common that one or more of the packages that another package depends on have been updated to "1.0.2", thus breaking the dependency on the "1.0.1" version.

典型的Haskell包依赖于其他几个包。例如,它可能依赖于1.0.1版本。另一个包依赖的一个或多个包被更新为“1.0.2”,从而打破了对“1.0.1”版本的依赖关系,这是非常常见的。

If you're trying to install a Haskell package that is high up in the pyramid-like dependency tree, like a GUI-application or a game, you can be quite sure that it will only be possible to install for a few days at a time, until the installation will fail, because an obscure package for transmogrifying monads has been updated from version 3.0.4 to 3.0.5.

如果你想安装一个Haskell包高的金字塔依赖树,像一个gui应用程序或游戏,你可以很确定,它才有可能安装了几天,直到安装会失败,因为一个名不见经传的包为日后的单体从版本3.0.4 3.0.5已经更新。

Also, the whole idea of an "arch-haskell" team owning all the Haskell packages, instead of trusted users or regular users of the AUR is a terrible idea, as they are slow at updating the packages, compared to the alternative. I how no idea why there has been made an exception for how Haskell packages are treated, as this is uncommon for Arch Linux.

另外,“archhaskell”团队拥有所有Haskell包,而不是信任的用户或AUR的普通用户,这是一个糟糕的想法,因为他们在更新包时比较慢,而不是其他选择。我不知道为什么Haskell包的处理方式有一个例外,因为这在Arch Linux中并不常见。

I have experienced cases where the only way to fix mysterious compilation-problems with a Haskell package has been to uninstall and then reinstall all the Haskell dependencies, including ghc.

我曾经遇到过这样的情况:修复Haskell包的神秘编译问题的唯一方法是卸载并重新安装所有Haskell依赖项,包括ghc。

All in all, Arch is fantastic for Haskell development, but it's easy to get caught up in a sea of broken packages the moment you're not just installing a package low in the dependency pyramid. This is usually due to incompatible minor version numbers, not incompatible code.

总的来说,Arch对于Haskell的开发来说是非常棒的,但是当您不只是在依赖金字塔的底层安装一个包时,很容易就会陷入大量的坏包中。这通常是因为不兼容的小版本号,而不是不兼容的代码。

I love both Arch Linux and Haskell, but still think this is a problem.

我喜欢Arch Linux和Haskell,但仍然认为这是一个问题。

Update #1: Arch has stopped having an "arch-haskell" team that owns all the haskell packages, and should now be the prime choice for Haskell developers everywhere.

更新#1:Arch已经停止了拥有所有haskell包的“Arch -haskell”团队,现在应该是所有haskell开发人员的首选。

Update #2: I don't think the problem with versions is a problem that is specific for Arch, it's a problem with how Haskell packages depends on each other. A system where one can depend on specific versions of specific functions instead of depending on libraries might help.

更新#2:我不认为版本的问题是Arch特有的问题,而是Haskell包如何相互依赖的问题。一个可以依赖特定函数的特定版本而不是依赖于库的系统可能会有所帮助。

#4


5  

Not sure about Haskell specifically, but I've found Ubuntu is greatly kept up to date but more importantly than that they tend to stress stability. If you are doing Haskell development, I assume you'd prefer stability over bleeding edge software...

我不太清楚Haskell的具体情况,但我发现Ubuntu在很大程度上是最新的,但更重要的是它们往往强调稳定性。如果您正在进行Haskell开发,我认为您更喜欢稳定性,而不是流血的边缘软件……

#5


5  

Haskell Platform 2009.2.0.1 is in Fedora 11.
Haskell Platform 2009.2.0.2 is in Fedora 12.
Haskell Platform 2009.2.0.2.1 is in Debian Unstable, it should migrate to Testing in a week or so.
Haskell Platform 2009.2.0.2 is masked in Gentoo testing.
Arch Linux is probably the most comprehensive, with nearly 90% of Hackage packaged in AUR.

Haskell平台2009.2.0.1在Fedora 11中。Haskell平台2009.2.0.2在Fedora 12中。Haskell平台2009.2.0.2.1在Debian不稳定,应该在一周左右迁移到测试中。Haskell平台2009.2.0.2在Gentoo测试中被屏蔽。Arch Linux可能是最全面的,有将近90%的Hackage打包在AUR。

#6


2  

Actually you don't have to choose a particular one as long as the one you use provides at least packages of one of the available Haskell interpreters/compilers (Hugs, GHC, etc.) AND cabal/darcs (you need one of them to pick some useful libs/tools from the huge HackageDB or darcs repos). I used to consider the same question but later when I know how to use cabal/darcs to find what I need I get that your choice is almost irrelevant. Though I prefer Arch, Ubuntu, Fedora (or some other distro people mentioned above) will do.

实际上,您不必选择特定的一个,只要您使用的那个至少提供了一个可用的Haskell解释器/编译器(Hugs, GHC, etc.)和cabal/darcs(您需要其中一个从巨大的HackageDB或darcs repos中挑选一些有用的libs/工具)。我以前也考虑过同样的问题,但后来当我知道如何利用阴谋/黑暗来找到我需要的东西时,我发现你的选择几乎是无关紧要的。虽然我更喜欢Arch, Ubuntu, Fedora(或者上面提到的其他发行版)就可以了。

#7


2  

on Debian & Ubuntu, you can install Haskell very easily.. You just have to type some command onto the terminal, and it will do the rest..

在Debian和Ubuntu上,你可以很容易地安装Haskell。你只需要在终端上输入一些命令,它就可以完成其余的任务。

just follow this link, it is about "Haskell installation on linux".. the link is to my blog only.. i think it will be helpful..

遵循这个链接,它是关于“linux上的Haskell安装”。链接到我的博客。我想这对我有帮助。

http://akashjagdhane.blogspot.in/2013/02/installing-all-packages-of-haskell-so.html

http://akashjagdhane.blogspot.in/2013/02/installing-all-packages-of-haskell-so.html

#8


0  

  • Fedora typically contains more up to date [bleeding edge] software. It contains the same tools as centos (yum, rpms, etc), so it might be more natural if you are familiar with CentOS.
  • Fedora通常包含更多最新的[流血边缘]软件。它包含与centos (yum、rpm等)相同的工具,所以如果您熟悉centos,可能会更自然。
  • Mint is an exceptionally good derivative of Ubuntu. This is my favorite distro ATM.
  • Mint是Ubuntu的一个非常好的衍生版本。这是我最喜欢的发行版自动取款机。

#9


0  

I'm learning Haskell and i'm using Ubuntu, it's very good and stable.

我在学习Haskell,我在使用Ubuntu,它很好很稳定。

Regards.

的问候。

#10


0  

Typically the repositories are geared toward a "general" case, rather than a high end user. You may get more benefit by building ghc from source with all your own requirements.

通常,存储库面向的是“通用”情况,而不是高端用户。通过使用您自己的所有需求从源构建ghc,您可能会获得更多的好处。

You might want to check around to non-standard repositories, to see if other Haskell affectionados have already done the work for you.

您可能想要查看非标准存储库,看看其他Haskell深情爱好者是否已经为您完成了这项工作。

#11


0  

It depends on how much memory your machine has. People face problems with GHC on machines with 512MB RAM and small swap partitions such as EeePC or VPS/VDS machines (by host1free.com, f.e.).

这取决于你的机器有多少内存。人们在使用512MB RAM和小型交换分区(如EeePC或VPS/VDS计算机)的机器上面临GHC问题。

If you have less than 1GB RAM then I would recommend you to compile GHC on Gentoo with splitobjs=NO (and Gentoo does this automatically for machines with 512Mb of RAM or less). Otherwise you can stick with Archlinux or any other Linux distribution of your preference.

如果您有少于1GB的内存,那么我建议您在Gentoo上编译GHC,并使用splitobjs=NO(并且Gentoo会自动为拥有512Mb RAM的机器执行此操作)。否则,您可以继续使用Archlinux或您喜欢的任何其他Linux发行版。

HaskellWiki has a page devoted to rife Linux Distributions and their Haskell support channels.

HaskellWiki有一个专门用于流行Linux发行版和Haskell支持通道的页面。

#12


0  

I found Haskell support on Gentoo excellent.

我发现Haskell对Gentoo的支持非常好。

Whatever outdated information about Gentoo has been posted here, the current Gentoo tree includes the 2014.2 Haskell platform.

无论关于Gentoo的过时信息是什么,当前的Gentoo树都包括了2014.2 Haskell平台。

  • There is a page on the Gentoo wiki with very clear instructions. I find the Arch wiki page quite confusing in comparison.
  • Gentoo wiki上有一个页面,上面有非常明确的说明。相比之下,我发现Arch wiki页面非常混乱。
  • Installation of Haskell packages is done with the Gentoo package manager, Portage. It's much more convenient to use than cabal and will prevent a cabal hell.
  • Haskell包的安装是由Gentoo软件包管理器Portage完成的。它比cabal更方便,而且可以防止一场阴谋。
  • If you activate the Haskell Overlay, you'll be able to install most packages from Hackage.
  • 如果您激活Haskell覆盖,您将能够安装来自Hackage的大多数包。
  • It's next-to-trivial to install packages that are not in the Gentoo tree or the Haskell overlay, using Hackport. It creates a Gentoo package from a Haskell package, which you can then install on your system like any other package.
  • 使用Hackport安装不属于Gentoo树或Haskell覆盖的包是非常重要的。它从Haskell包创建一个Gentoo包,然后可以像其他包一样将其安装到系统上。
  • A tool called haskell-updater ensures that all your Haskell packages have compatible versions.
  • 一个叫做haskell-updater的工具可以确保所有Haskell包都有兼容的版本。
  • There is an IRC channel, #gentoo-haskell, in which you'll get help with all Gentoo-specific Haskell problems.
  • 有一个IRC频道,#gentoo-haskell,在那里您将得到所有特定于gentoo的Haskell问题的帮助。

#1


28  

My current distro, Arch Linux, has extensive support for Haskell.

我目前的发行版Arch Linux对Haskell有广泛的支持。

You can see the status of directly available haskell packages here (at the time of writing, 1370 packages are available). There is also a wiki page about Haskell packages in Arch Linux.

您可以在这里看到直接可用的haskell包的状态(在撰写本文时,有1370个包可用)。在Arch Linux中还有一个关于Haskell包的wiki页面。

#2


7  

I plan to check NixOS. It has a purely functional package manager (supporting multiple versions and rollbacks), it's developed by Haskell programmers, and it has a few Haskell packages.

我打算检查一下NixOS。它有一个纯功能性的包管理器(支持多个版本和回滚),它是由Haskell程序员开发的,并且它有一些Haskell包。

It may not be the most complete in terms of number of packages, but it seems to be very interesting for Haskellers.

它可能不是最完整的软件包数量,但它似乎对Haskellers非常有趣。

#3


6  

I'm using Arch Linux, and while Haskell is well supported, with plenty of packages that are mostly fresh and up to date versions, there is a problem with versions and dependencies.

我使用的是Arch Linux,虽然Haskell得到了很好的支持,但是很多包都是最新的、最新的版本,但是版本和依赖关系有问题。

A typical Haskell package depends on several other packages. For example, it may depend on version 1.0.1. It's extremely common that one or more of the packages that another package depends on have been updated to "1.0.2", thus breaking the dependency on the "1.0.1" version.

典型的Haskell包依赖于其他几个包。例如,它可能依赖于1.0.1版本。另一个包依赖的一个或多个包被更新为“1.0.2”,从而打破了对“1.0.1”版本的依赖关系,这是非常常见的。

If you're trying to install a Haskell package that is high up in the pyramid-like dependency tree, like a GUI-application or a game, you can be quite sure that it will only be possible to install for a few days at a time, until the installation will fail, because an obscure package for transmogrifying monads has been updated from version 3.0.4 to 3.0.5.

如果你想安装一个Haskell包高的金字塔依赖树,像一个gui应用程序或游戏,你可以很确定,它才有可能安装了几天,直到安装会失败,因为一个名不见经传的包为日后的单体从版本3.0.4 3.0.5已经更新。

Also, the whole idea of an "arch-haskell" team owning all the Haskell packages, instead of trusted users or regular users of the AUR is a terrible idea, as they are slow at updating the packages, compared to the alternative. I how no idea why there has been made an exception for how Haskell packages are treated, as this is uncommon for Arch Linux.

另外,“archhaskell”团队拥有所有Haskell包,而不是信任的用户或AUR的普通用户,这是一个糟糕的想法,因为他们在更新包时比较慢,而不是其他选择。我不知道为什么Haskell包的处理方式有一个例外,因为这在Arch Linux中并不常见。

I have experienced cases where the only way to fix mysterious compilation-problems with a Haskell package has been to uninstall and then reinstall all the Haskell dependencies, including ghc.

我曾经遇到过这样的情况:修复Haskell包的神秘编译问题的唯一方法是卸载并重新安装所有Haskell依赖项,包括ghc。

All in all, Arch is fantastic for Haskell development, but it's easy to get caught up in a sea of broken packages the moment you're not just installing a package low in the dependency pyramid. This is usually due to incompatible minor version numbers, not incompatible code.

总的来说,Arch对于Haskell的开发来说是非常棒的,但是当您不只是在依赖金字塔的底层安装一个包时,很容易就会陷入大量的坏包中。这通常是因为不兼容的小版本号,而不是不兼容的代码。

I love both Arch Linux and Haskell, but still think this is a problem.

我喜欢Arch Linux和Haskell,但仍然认为这是一个问题。

Update #1: Arch has stopped having an "arch-haskell" team that owns all the haskell packages, and should now be the prime choice for Haskell developers everywhere.

更新#1:Arch已经停止了拥有所有haskell包的“Arch -haskell”团队,现在应该是所有haskell开发人员的首选。

Update #2: I don't think the problem with versions is a problem that is specific for Arch, it's a problem with how Haskell packages depends on each other. A system where one can depend on specific versions of specific functions instead of depending on libraries might help.

更新#2:我不认为版本的问题是Arch特有的问题,而是Haskell包如何相互依赖的问题。一个可以依赖特定函数的特定版本而不是依赖于库的系统可能会有所帮助。

#4


5  

Not sure about Haskell specifically, but I've found Ubuntu is greatly kept up to date but more importantly than that they tend to stress stability. If you are doing Haskell development, I assume you'd prefer stability over bleeding edge software...

我不太清楚Haskell的具体情况,但我发现Ubuntu在很大程度上是最新的,但更重要的是它们往往强调稳定性。如果您正在进行Haskell开发,我认为您更喜欢稳定性,而不是流血的边缘软件……

#5


5  

Haskell Platform 2009.2.0.1 is in Fedora 11.
Haskell Platform 2009.2.0.2 is in Fedora 12.
Haskell Platform 2009.2.0.2.1 is in Debian Unstable, it should migrate to Testing in a week or so.
Haskell Platform 2009.2.0.2 is masked in Gentoo testing.
Arch Linux is probably the most comprehensive, with nearly 90% of Hackage packaged in AUR.

Haskell平台2009.2.0.1在Fedora 11中。Haskell平台2009.2.0.2在Fedora 12中。Haskell平台2009.2.0.2.1在Debian不稳定,应该在一周左右迁移到测试中。Haskell平台2009.2.0.2在Gentoo测试中被屏蔽。Arch Linux可能是最全面的,有将近90%的Hackage打包在AUR。

#6


2  

Actually you don't have to choose a particular one as long as the one you use provides at least packages of one of the available Haskell interpreters/compilers (Hugs, GHC, etc.) AND cabal/darcs (you need one of them to pick some useful libs/tools from the huge HackageDB or darcs repos). I used to consider the same question but later when I know how to use cabal/darcs to find what I need I get that your choice is almost irrelevant. Though I prefer Arch, Ubuntu, Fedora (or some other distro people mentioned above) will do.

实际上,您不必选择特定的一个,只要您使用的那个至少提供了一个可用的Haskell解释器/编译器(Hugs, GHC, etc.)和cabal/darcs(您需要其中一个从巨大的HackageDB或darcs repos中挑选一些有用的libs/工具)。我以前也考虑过同样的问题,但后来当我知道如何利用阴谋/黑暗来找到我需要的东西时,我发现你的选择几乎是无关紧要的。虽然我更喜欢Arch, Ubuntu, Fedora(或者上面提到的其他发行版)就可以了。

#7


2  

on Debian & Ubuntu, you can install Haskell very easily.. You just have to type some command onto the terminal, and it will do the rest..

在Debian和Ubuntu上,你可以很容易地安装Haskell。你只需要在终端上输入一些命令,它就可以完成其余的任务。

just follow this link, it is about "Haskell installation on linux".. the link is to my blog only.. i think it will be helpful..

遵循这个链接,它是关于“linux上的Haskell安装”。链接到我的博客。我想这对我有帮助。

http://akashjagdhane.blogspot.in/2013/02/installing-all-packages-of-haskell-so.html

http://akashjagdhane.blogspot.in/2013/02/installing-all-packages-of-haskell-so.html

#8


0  

  • Fedora typically contains more up to date [bleeding edge] software. It contains the same tools as centos (yum, rpms, etc), so it might be more natural if you are familiar with CentOS.
  • Fedora通常包含更多最新的[流血边缘]软件。它包含与centos (yum、rpm等)相同的工具,所以如果您熟悉centos,可能会更自然。
  • Mint is an exceptionally good derivative of Ubuntu. This is my favorite distro ATM.
  • Mint是Ubuntu的一个非常好的衍生版本。这是我最喜欢的发行版自动取款机。

#9


0  

I'm learning Haskell and i'm using Ubuntu, it's very good and stable.

我在学习Haskell,我在使用Ubuntu,它很好很稳定。

Regards.

的问候。

#10


0  

Typically the repositories are geared toward a "general" case, rather than a high end user. You may get more benefit by building ghc from source with all your own requirements.

通常,存储库面向的是“通用”情况,而不是高端用户。通过使用您自己的所有需求从源构建ghc,您可能会获得更多的好处。

You might want to check around to non-standard repositories, to see if other Haskell affectionados have already done the work for you.

您可能想要查看非标准存储库,看看其他Haskell深情爱好者是否已经为您完成了这项工作。

#11


0  

It depends on how much memory your machine has. People face problems with GHC on machines with 512MB RAM and small swap partitions such as EeePC or VPS/VDS machines (by host1free.com, f.e.).

这取决于你的机器有多少内存。人们在使用512MB RAM和小型交换分区(如EeePC或VPS/VDS计算机)的机器上面临GHC问题。

If you have less than 1GB RAM then I would recommend you to compile GHC on Gentoo with splitobjs=NO (and Gentoo does this automatically for machines with 512Mb of RAM or less). Otherwise you can stick with Archlinux or any other Linux distribution of your preference.

如果您有少于1GB的内存,那么我建议您在Gentoo上编译GHC,并使用splitobjs=NO(并且Gentoo会自动为拥有512Mb RAM的机器执行此操作)。否则,您可以继续使用Archlinux或您喜欢的任何其他Linux发行版。

HaskellWiki has a page devoted to rife Linux Distributions and their Haskell support channels.

HaskellWiki有一个专门用于流行Linux发行版和Haskell支持通道的页面。

#12


0  

I found Haskell support on Gentoo excellent.

我发现Haskell对Gentoo的支持非常好。

Whatever outdated information about Gentoo has been posted here, the current Gentoo tree includes the 2014.2 Haskell platform.

无论关于Gentoo的过时信息是什么,当前的Gentoo树都包括了2014.2 Haskell平台。

  • There is a page on the Gentoo wiki with very clear instructions. I find the Arch wiki page quite confusing in comparison.
  • Gentoo wiki上有一个页面,上面有非常明确的说明。相比之下,我发现Arch wiki页面非常混乱。
  • Installation of Haskell packages is done with the Gentoo package manager, Portage. It's much more convenient to use than cabal and will prevent a cabal hell.
  • Haskell包的安装是由Gentoo软件包管理器Portage完成的。它比cabal更方便,而且可以防止一场阴谋。
  • If you activate the Haskell Overlay, you'll be able to install most packages from Hackage.
  • 如果您激活Haskell覆盖,您将能够安装来自Hackage的大多数包。
  • It's next-to-trivial to install packages that are not in the Gentoo tree or the Haskell overlay, using Hackport. It creates a Gentoo package from a Haskell package, which you can then install on your system like any other package.
  • 使用Hackport安装不属于Gentoo树或Haskell覆盖的包是非常重要的。它从Haskell包创建一个Gentoo包,然后可以像其他包一样将其安装到系统上。
  • A tool called haskell-updater ensures that all your Haskell packages have compatible versions.
  • 一个叫做haskell-updater的工具可以确保所有Haskell包都有兼容的版本。
  • There is an IRC channel, #gentoo-haskell, in which you'll get help with all Gentoo-specific Haskell problems.
  • 有一个IRC频道,#gentoo-haskell,在那里您将得到所有特定于gentoo的Haskell问题的帮助。