你可以在Ubuntu的官方网站上找到源代码。

我想知道在哪里找到Ubuntu的源代码。我想看看它有多“开放源代码”。

31而且它是完全开源的。不需要对此持怀疑态度... - notablytipsy
2所有源代码文件的源代码都是开放的。 - Anwar
2尽管被称为“开放”,但据我所知,内核中仍存在着被称为二进制块的东西。它是开放的,但在某些地方并不易解读。 - AER
5个回答

  1. Linux内核源代码:

    apt-get source linux-source-3.2.0
    

    我可以在哪里找到Ubuntu内核的源代码?

  2. Ubuntu源代码:

    Ubuntu存档

  3. 特定软件源代码:

    sudo apt-get build-dep $package
    

    其中$package是你想采用的程序/软件包的源代码。

    然后输入:

    apt-get source $package
    

    以获取该软件包的源代码。

    例如:

    sudo apt-get build-dep abiword
    apt-get source abiword
    

每个主要和宇宙存档中的软件包的源代码都可以在Launchpad上找到,或者您可以通过在“软件属性”对话框中启用,然后在终端中执行apt-get source $packagename命令来获取它,刷新软件包信息后。
合作伙伴存储库中的软件包源代码通常不可用,因为它们大多数不是开源应用程序。这也适用于软件中心中的某些项目。

在Linux发行版中,软件被组织成包。每个包要么包含用户界面的软件,比如Firefox,要么包含像libasound2这样的库,它是Firefox所需的。如果你安装了Firefox,apt系统会找出存在的先决条件包,并下载并安装它们。现在,这些包通常以二进制文件的形式分发,已经针对特定处理器架构进行了编译,但用于编译该版本包的确切源代码可以通过apt-get source firefox获得。
Ubuntu软件仓库中的绝大多数内容都是开源的。但Ubuntu确实有一份批准的专有软件列表。虽然这些软件不符合Ubuntu的自由目标,但它们受到社区的极大欢迎,并提供了很多价值。其中的例子有Skype或Sun Java(现已移除)。这些软件包没有列在Ubuntu软件包网站上。

非常好的软件背景概述 - zipizap

你可以从Ubuntu下载服务器上下载完整的源代码ISO文件:

  1. http://cdimage.ubuntu.com/releases/<version>/release/source/ 用于当前支持的版本。例如,http://cdimage.ubuntu.com/releases/12.04/release/source/ 是用于12.04版本的。
  2. http://old-releases.ubuntu.com/releases/<version>/release/source/ 用于过时/已终止支持的版本。例如,http://old-releases.ubuntu.com/releases/12.10/source/ 是用于12.10版本的。然而,似乎只有从12.10版本开始提供源代码ISO文件。

bzr

获取软件包hello的最新版本(包括下一个未发布的版本):

bzr branch lp:ubuntu/hello

获取特定版本:

bzr branch lp:ubuntu/trusty/hello

现在您可以例如:
bzr log

要查看开发历史或类似的软件配置管理操作。

bzr是一个很好的选择,因为它保留了Ubuntu开发人员提供给Ubuntu的实际输入,所以它是一个更加权威的(没有恶意)来源。

Launchpad bzr浏览

您也可以在Launchpad上浏览存储库。

对于hello软件包,请访问:https://code.launchpad.net/ubuntu/+source/hello

现在选择您感兴趣的Ubuntu版本,例如:https://code.launchpad.net/~ubuntu-branches/ubuntu/trusty/hello/trusty

然后,如果您点击“浏览代码”,您将进入:https://bazaar.launchpad.net/~ubuntu-branches/ubuntu/trusty/hello/trusty/files,在那里您可以浏览文件和提交历史。

这由Loggerhead提供支持。