AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 26327
Accepted
Kortex786
Kortex786
Asked: 2009-06-16 20:28:58 +0800 CST2009-06-16 20:28:58 +0800 CST 2009-06-16 20:28:58 +0800 CST

从源代码为其他服务器重新编译包

  • 772

我有几台服务器 (10) 在 x86 上运行 Debian Lenny。我需要从源代码编译一些包。我知道在生产服务器上安装编译工具(为了安全)不是一个好习惯。

我想知道,我是否可以在单台计算机(x86)上编译这些软件包并将它们安装在服务器上?

有什么问题吗 ?

软件包示例

  • 内核源
  • 阿帕奇
  • PHP5
  • ...

十分感谢。

debian package-management
  • 5 5 个回答
  • 230 Views

5 个回答

  • Voted
  1. Best Answer
    jldugger
    2009-06-16T21:23:13+08:002009-06-16T21:23:13+08:00

    您有十台 Lenny 服务器都运行 x86 架构。完全有可能构建一个安装到任何运行特定架构的计算机上的软件包。使用 构建 Debian 软件包是一种很好的做法pbuilder,以避免任何“在开发盒上工作”的问题。

    重建一个包相对简单。apt-get有一个source命令会拉下源代码。如果所需要的只是一个简单的configure选项更改,那么您就差不多完成了。编辑debian/rules文件,并用类似的东西对包进行版本升级~jldugger0,因此您覆盖了您从中派生的 debian 版本,但不是来自 Debian 的任何新版本。只需增加尾随的 0 以保持碰撞本地版本。不要直接碰撞 Debian 版本,看在上帝的份上,不要碰撞时代——如果你想确保较新的版本不会覆盖本地更改,请固定包。请注意,您正在招致重大的安全风险,并且需要找到某种方式来订阅包中的更改以供审核。

    本地版本的包的两个问题是:应该努力跟上新版本的步伐。如果您的更改足够简单,您也许可以使用应用补丁的脚本。如果它是侵入性的,那么随着冲突的累积,不向上游推送更改将花费您越来越多的时间。另一个问题是依赖关系。内核、Apache 和 PHP 都是其他包所依赖的核心组件。考虑您要对包进行的更改是否会影响依赖于它的其他包。

    • 5
  2. nik
    2009-06-16T20:50:52+08:002009-06-16T20:50:52+08:00

    只要服务器来自相同的发行版(并且具有相同的平台,x86),在其中一个上编译并在多个上安装应该没有区别。这与获得预编译的二进制文件或包本身一样好。

    事实上,你也可以打包(或者只是 tar.bz2 编译的目录,把它带到每个服务器,在本地解压并在make install那里运行。

    安装完成后,只需从这些服务器中删除提取的目录。

    • 1
  3. tomdeb
    2009-06-16T21:00:32+08:002009-06-16T21:00:32+08:00

    如果架构相同,那么它将非常简单。如果没有,则称为交叉编译,需要进行一些设置。

    也许一个想法是为自定义包设置一个内部 debian 存储库。这样,该软件包将通过 apt 提供给您的服务器(只要他们知道您的自定义存储库)

    • 1
  4. pgs
    2009-06-16T21:03:44+08:002009-06-16T21:03:44+08:00

    你可以:

    • 正如其他人回答的那样,将它们编译成包(或 tar 文件)并复制并安装它们,
    • 在一台服务器上编译它们,将它们安装到共享目录中,然后 NFS 挂载它(/usr/local 或 /usr/share 都浮现在脑海中)。显然,这不适用于内核映像。
    • 0
  5. Antoine Benkemoun
    2009-06-16T21:16:25+08:002009-06-16T21:16:25+08:00

    您还可以使用 make-kpkg 命令制作 .deb 包,这些包与您在标准 repos 中可以找到的非常相似。

    • 0

相关问题

  • 严重的写入性能问题

  • 您是否在生产/个人服务器上使用过 Debian 不稳定/测试?

  • 推荐的个人邮件服务器设置 [关闭]

  • 为什么 redhat 在企业界似乎如此受欢迎?[关闭]

  • 我应该如何将 debian/xen 机器从 etch 升级到 lenny

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve