- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
真正知道这个问题答案的人是那些为 Linux 发行版中包含的程序或库开发的人,这些程序或库依赖于 Linux 发行版中包含的其他库。他们只是告诉我他们在我描述的开发环境方面做了什么会很有帮助。
问题基本上是这样的:
Linux 发行版将 Linux 内核与典型的 Linux 管道捆绑在一起——glib、dbus、udev 等等。大多数还捆绑桌面环境,如 KDE 或 Gnome。
虽然发行版可能有一些自己的捆绑程序包,但大多数程序和库都来自上游,这意味着它本身以外的来源。像 dbus 这样的包是“上游”的,并向下游流向 Debian、Fedora、Ubuntu 等发行版。
有时我使用这些程序并觉得它们可以改进。一些改进是错误修复,这些错误修复确实无可争辩 - 比如一个小补丁可以防止因不必要的内存违规而导致的段错误。
构建这些包时,发行版包括的一件事是“依赖”列表,因为这些程序中的许多依赖于某些库(以及这些库的某些版本),而其中一些库依赖于其他库。这导致了我遇到的一些并发症。
如果我在程序或库中遇到错误并向上游报告,一个常见的问题是“您在源代码管理中使用的是最新版本,还是旧版本”。可以理解的是,开发人员希望我使用最新提交的代码,因为他们不想浪费时间回溯他们已经覆盖的基础,尤其是在错误已修复的情况下。
所以我去获取最新的提交。但是后来我遇到了一个问题,因为现在最新的提交依赖于一个比我的操作系统使用的库更新的库。
一个例子可能是,如果我正在使用 Ubuntu 中的默认阅读器查看 PDF,evince。由于 evince 依赖的 poppler 库中似乎存在缺陷,因此无法正确显示。所以我发布了一个错误,但他们想知道我是否有最新的 poppler 版本。所以我下载了最新的 poppler commit,但是 poppler 库依赖于 cairo 库,而我的操作系统没有最新的 cairo 库。所以我必须得到它 - 但是 cairo 提示我没有最新的 pixman 和 x11 库。
这是一个例子,但它几乎适用于任何包。
所以我的问题是,什么是用于此类事情的良好 Linux 发行版?哪个以拥有最新的软件包而闻名,或者至少可以轻松获得它们?
或者也许是一个更容易让我做这些事情的 Linux 发行版。我听说过 Gentoo 如何通过 emerge 从源代码构建,我可以看到这解决了很多问题。
还可以选择使用 pbuilder 和 debootstrap 等工具在另一个系统的 chroot 环境中拥有最新包的子系统。
最后,我可以只下载所有库的最新提交,先构建一个我不关心的依赖项,然后转到下一个并构建它,让程序使用我编译的本地库,不是系统库,然后再做一次等等。这是我出于多种原因试图避免的(太多的手动操作,我可能会错过一个重要的依赖项等)
最佳答案
参与发行版,专注于您想要改进的软件包
发行版确保包版本可以很好地协同工作。这是构建 Linux 系统的第一份工作,他们已经完成了。他们确保一切都“合适”。如果您想改进软件包,请在发行版中进行改进。如果补丁有值(value),它可能会应用到最新版本。
并非所有软件包都存在依赖性问题,因此您可以从存储库构建这些软件包并以这种方式做出贡献。发行版主要是环境,上游包通常得到发行版开发人员的贡献。
仅仅为了 Gnome 核心开发而构建整个发行版没有多大意义真的。只是改进 Gentoo 的 Gnome 构建并尝试在上游获取适用的补丁。
专注于您可以输入值(value)的地方,而不是花费 1/4 的时间等待构建和弄清楚为什么包 X 无法针对库 Y 进行编译,而您无论如何只想在 Z 上工作!
我与 Fedora Rawhide 一起工作在做任何开发工作时,它不像某些东西那样前沿,但提供了良好的稳定性和可变性 IMVHO
或者总是有:
Linux From Scratch ,如果你喜欢痛苦的话。
关于c - 用于开发最新的 Linux 上游(内核、Gnome 等)软件包的良好 Linux 发行版(和方法)是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3893714/
我需要一些说明。我可以直接写入 /dev/port 以直接访问并行端口并且它工作正常(我可以打开插入端口连接器的 LED)。但是,我想我可以用 /dev/mem 做同样的事情? (http://tld
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我使用 Visual C++ 和 Win32 API 学习了 Windows 编程。如今,似乎大多数应用程序都是使用 C# 在 .NET 中开发的。我知道大多数时候 native 代码和托管代码之间没
请耐心等待。我正在制作一个 java 控制台,类似于此处找到的 DragonConsole https://code.google.com/p/dragonconsole/ 。一切都按计划进行,但我想
关闭。这个问题需要更多 focused .它目前不接受答案。 想要改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭5年前。 Improve this que
Django 的开发服务器表现得很奇怪。访问它的浏览器在加载时卡住,任何退出它的尝试都不起作用。当我点击 control c看似相当,但实际上仍在运行。让它退出的唯一方法是重新启动我的电脑,这很令人沮
我正在使用 Flash Develop,并且创建了一个 ActionScript 3.0 项目。它启动并读取一个 xml 文件,其中包含图像的 url。我已将 url 保留在与 swf 相同的文件夹中
是否可以根据其 website 上提供的规范开发 AUTOSAR BSW 堆栈(例如用于 CAN 通信)?不购买任何昂贵的供应商工具?可以遵循哪些步骤?我被要求探索这种可能性。 最佳答案 是和否。工具
有人知道如何用音频文件的内容覆盖 iPhone 麦克风吗? 想象一个场景,您正在通话,并且想要播放一些简短的音频让其他人听到。 因此,有必要将麦克风(硬件)置于保持状态,并使用委托(delegate)
我遇到了这个问题,我的应用程序出现 EXC_BAD_ACCESS 错误并卡住/停止。我使用模拟器的“向左旋转”和“向右旋转”选项来模拟方向变化行为。导致此错误的可能原因有哪些?由于我没有获得有关错误的
我有超过 1 台 Mac,我想在所有这些 Mac 上进行开发。我知道我需要在每台机器上同步我的手机,但这是我遇到的最小的问题。看起来我无法在手机上运行应用程序,除了在其中之一上开发的应用程序。 是否有
在手机上测试时,我的应用程序在特定点崩溃。控制台显示此消息 Tue Jan 27 15:47:14 unknown SpringBoard[22] : Application com.myprof.
我有一个案例,我从服务器获取信息。我的应用程序有一个选项卡栏和导航按钮。我希望应用程序显示进度指示器并禁用所有其他控件,以便用户在从服务器提取数据时无法跳转。我怎样才能实现这个目标? 我想到的一种方法
有时,当我尝试“构建”/编译下载的源代码时,我会收到以下警告: ld: warning: directory '/Volumes/Skiiing2/CD/ViewBased/Unknown Path/
我无法在 Apple 文档中找到关于开发和分发配置之间差异的明确解释。我目前正在使用开发配置在我的 iPhone 上进行开发和测试。我打算将该应用程序分发到我的 Beta 测试中,我想知道: 我需要使
我在使用 SharePoint 时遇到的最大挑战之一是它不能很好地适应典型的项目环境,其中至少包含开发和生产环境。我遇到的最多的问题是内容和列表是如此紧密地耦合在一起,以至于如果不在生产环境中执行内容
我失败了fist step让 Eclipse(对我来说是全新的)为 ARM 开发做好准备。 我在 Windows 10 中安装了 Eclipse。我想我应该安装 xpm,但我不知道在哪里输入此命令:
首先,我告诉你-我是编码新手 我正在使用vs代码来学习c++,它不会产生像dev c++或codeblocks这样的调试器。我看了一些视频,其中我们必须编辑json文件,这对于初学者来说非常复杂。有人
我失败了fist step让 Eclipse(对我来说是全新的)为 ARM 开发做好准备。 我在 Windows 10 中安装了 Eclipse。我想我应该安装 xpm,但我不知道在哪里输入此命令:
我开发了一个 Ionic 应用程序(iOS 和 Android 的混合)。我有 Xcode 8.3.3 并购买了一年的 Apple Developer Program 订阅。 我不想测试我的应用并将其
我是一名优秀的程序员,十分优秀!