如何编译并从源代码安装程序
在FreeBSD中使用Ports Collection的概述:
找到港口
端口按组排列,因此如果您无法识别端口所在的组,则需要先找到它:
cd /usr/ports
make search name=myport
有时以这种方式存在太多访问权限。 我直接赞成:
find /usr/ports -name myport* -print -depth 2
考虑到端口通常有很多可供使用的变体,请查看*
。 深度论证可以保证您的回归结果不会被您不太可能需要的诉讼所困扰。
安排
通常,你打算做一些安排; 像Apache和Postgres这样的软件程序几乎需要它。 有3个主要选择:命令行,设置和安排文档。 要使用命令行:
make showconfig
这肯定会详细说明默认的安排选择。 如果你喜欢默认值,那么你准备编译并安装。 除此以外,
make config
肯定会提出一个对话框,您可以在其中选择您想要的替代方案。 (不要对此感到困惑,还有make configure
用您选择的备选方案配置您的端口!) 这通常已经足够了,但对于某些软件程序,如Apache,通常会有一个复杂的安排,直接的对话框不会处理。 为此,您还需要考虑Makefile,它肯定偶尔会为make提供一些额外的目标,这些目标肯定会为您提供更多细节。 继续Apache实例
make show-modules
make show-options
make show-categories
肯定会为您提供有关建立您选择的组件,字符串替代品等的详细信息。 如果您的端口的默认值非常好并且您只是想要转换几个点,您还可以简单地传递key = value集,如设置变量:
make MYVBL1=MYVAL1 ... install clean
此外,您可以使用-D
替代方法设置按钮替代方案:
make -D MYVAR -D MYOTHERVAR ... install clean
尽管如此,对于错综复杂的安排,命令行将无法正常运行,而且你的前两种方法肯定都不会好得多。 在这种情况下,您可以制作排列文档,并使用__ MAKE_CONF变量将其传递给make
。 FreeBSD有一个默认的安排文件:/etc/make.conf
,它通常包含以前安装的端口的细节以及各种其他系统设置。 首先,使用您的ports替代创建文档,将其命名为~/myport.mk
,然后将这些文档与/ etc / make合并。 CONF:
cat /etc/make.conf ~/myport.mk >> ~/make.myport.conf
你可以在检查完你的安排后:
make showconfig __MAKE_CONF=~/make.port.conf
如果每件小事看起来都很棒:
make install clean __MAKE_CONF=~/make.myport.conf
谨防! 如果您需要在make configure
之后重新调整您的排列设置,或者在整个或组件中重新安装 绝对要先清除你的安排 :
make rmconfig
如果不这样做,肯定会导致端口子系统,端口的make
默认值以及您想要的安排之间的意外通信。
对于概述来说,这是一大堆,但安排的复杂性主要涉及应用,而不是端口。 大满贯作为一个例子,实际上没有任何替代品。
分期付款
这是非常简单的组件:
make install clean
或者你可以
make build
make install
make clean
这简直就是额外的键控。
实际上就是这样。 显然,你可以做更多的事情,例如递归细节依赖性和安排选择,升级点和更多。 下面我将向您介绍手册的端口区域,端口子系统的公网页(添加的make目标的优秀详细信息)以及make
公网页。
最近,当我从计划主管那里安装源代码时,我开始使用“Checkinstall”。 它构建了一个来自第三个事件tarball的“计划”,之后可以通过您的计划管理设备进行安装和处理(也可以卸载)。
看看这篇文章 - http://www.linuxjournal.com/content/using-checkinstall-build-packages-source
通常情况下,该任务肯定会有一个互联网网站,其中包含如何构建和安装它的指南。 谷歌就是第一个。
基本上你肯定会这样做:
- 下载tarball(tar.gz或tar.bz2文档),这是源代码的详细信息变体的发布
- 使用
tar zxvf myapp.tar.gz
之类的命令为gzip压缩包提取tarball,或者为xz_perma_1提取压缩包tarball - cd直接进入开发的目录
- 运行
./configure && make && sudo make install
要么 :
- 使用git或svn或其他任何东西从主源数据库中获取最新的源代码
- cd直接进入开发的目录
- 运行
./autogen.sh && make && sudo make install
configure和autogen.sh肯定会批准 - - prefix参数来定义软件程序的安装位置。 我建议查看我应该把自己编译的软件放在哪里?,以获得有关安装个性化构建软件程序的最有效区域的建议。
我只是打算补充说,有计划监督员从源头编译计划,并且还负责所有计划依赖,标志等等
。 在BSD系统中,它是ports
:使用Ports Collection
在Debian中,apt-get
计划主管也可以从源代码安装:APT HOWTO:使用源包(与Ubuntu相同,Linux - 薄荷以及基于Debian的其他所有小东西)
Gentoo循环使用portage
计划管理程序,它从源代码组装整个系统:Portage简介。
Slackware可以编译计划但我不知道其中是否有任何类型的计划主管。 =)
无论如何,你可以像Sandy所说的那样不断地手工编制计划=)此外,在任何其他类型的发行版中使用apt-get
或portage
计划主管也必须是可行的...
相关问题