小编Sim*_*son的帖子

学习从源代码编译东西(在 Unix/Linux/OSX 上)

当我尽可能从包 (MacPorts / apt-get) 安装软件时,我经常发现自己需要从源代码编译包。./configure && make && sudo make install通常就足够了,但有时它不起作用 - 当它不起作用时,我经常被卡住。这几乎总是以某种方式与其他库依赖项相关。

我想学习以下内容:

  • 我如何弄清楚要传递给什么参数./configure
  • 共享库如何在 OS X / Linux 下工作 - 它们在文件系统上的位置,如何./configure && make找到它们,当它们被链接时实际发生了什么
  • 共享库和静态链接库之间的实际区别是什么?为什么我不能只是静态链接所有内容(现在 RAM 和磁盘空间都很便宜),从而避免奇怪的库版本冲突?
  • 我如何知道我安装了哪些库以及哪些版本?
  • 如何在不破坏正常系统的情况下安装多个版本的库?
  • 如果我使用软件包管理的系统上从源代码安装东西,那么最干净的方法是什么?
  • 假设我设法从源代码中精心编译了一些东西,那么我如何将其打包,以便其他人不必跳过相同的圈套?特别是在 OS X 上......
  • 我需要掌握哪些命令行工具才能擅长这些东西?诸如 otool、pkg-config 之类的东西。

我愿意在这里投入相当多的时间和精力——我不一定想要对上述问题的直接答案,我更愿意得到关于我可以阅读的书籍/教程/常见问题解答的建议,这会给我我需要了解实际发生的事情,从而自己解决问题。

linux unix installation mac-osx

49
推荐指数
4
解决办法
2万
查看次数

使用rsync快速上传与另一个文件相似的文件

我正在整理一个部署脚本,它对我的​​代码目录进行 tar 处理,在当前日期和时间之后命名 tar 文件,将其推送到服务器,将其解压到同名目录中,然后交换“当前" 符号链接指向新目录。这意味着我的旧部署保留在带时间戳的目录中(至少在我删除它们之前)。

tar 文件大约 5MB,传输需要将近一分钟。我想加快速度。

我假设每个新的 tarball 在结构上都与以前的 tarball 非常相似(因为我经常只在两次部署之间更改几行源代码)。有没有办法利用这个事实来加速我使用 rsync 的上传?

理想情况下我想说“嘿rsync,将这个名为2009-10-28-222403.tar.gz的本地文件上传到我的服务器,但它与文件2009-10-27-101155.tar只有一点点不同.gz 已经在那里了,所以试着把差异发送出去”。这是可能的,还是我应该查看其他工具?

deployment rsync file-transfer

6
推荐指数
1
解决办法
5081
查看次数

标签 统计

deployment ×1

file-transfer ×1

installation ×1

linux ×1

mac-osx ×1

rsync ×1

unix ×1