这个问题确实限制了我对Linux的使用。如果应用程序不在存储库中,或者没有安装程序脚本,那么我真的很难在哪里以及如何从源代码安装应用程序。
与Windows相比,这很容易。您(非常需要)使用安装程序应用程序来完成向导中的所有工作。使用Linux ...没那么多。
那么,您是否对此有任何提示或指示,或者是否有任何网站明确说明从源代码安装Linux程序的方式,原因和位置?
这个问题确实限制了我对Linux的使用。如果应用程序不在存储库中,或者没有安装程序脚本,那么我真的很难在哪里以及如何从源代码安装应用程序。
与Windows相比,这很容易。您(非常需要)使用安装程序应用程序来完成向导中的所有工作。使用Linux ...没那么多。
那么,您是否对此有任何提示或指示,或者是否有任何网站明确说明从源代码安装Linux程序的方式,原因和位置?
Answers:
通常,该项目将有一个网站,其中包含有关如何构建和安装它的说明。Google首先。
在大多数情况下,您将执行以下任一操作:
tar zxvf myapp.tar.gz
gzip压缩tarball或tar jxvf myapp.tar.bz2
bzip 压缩tarball 的命令提取tarball./configure && make && sudo make install
要么:
./autogen.sh && make && sudo make install
configure和autogen.sh都将接受--prefix参数来指定软件的安装位置。我建议查看应该将自己编译的软件放在哪里?以获取有关安装定制软件的最佳位置的建议。
make && sudo make install
。某些Python项目仅包含setup.py,您将调用setup.py进行安装(因为没有真正的编译安装程序)。还有很多其他的构建/安装系统。希望README或INSTALL文件将确切说明该怎么做。
我只想补充一下,有些软件包管理器可以从源代码编译软件包,并处理所有软件包依赖项,标志等。
在BSD系统中,它是ports
:使用端口集合
在Debian中,apt-get
软件包管理器也可以从源代码安装:APT HOWTO:使用源软件包(Ubuntu,Linux-mint和基于Debian的所有其他软件都适用)
Gentoo发行版使用portage
软件包管理器,该软件包管理器仅从源代码编译整个系统:Portage Introduction。
Slackware可以编译软件包,但是我不知道那里是否有任何软件包管理器。
无论如何,您总是可以像上面提到的Sandy一样手动编译软件包=)另外,在任何其他发行版中也必须可以使用apt-get
或portage
打包管理器...
在FreeBSD中使用Ports集合的摘要:
查找港口
端口是按类别组织的,因此,如果您不知道端口在哪个类别中,则必须先找到它:
cd /usr/ports
make search name=myport
有时候,这样的条目太多了。我个人更喜欢:
find /usr/ports -name myport* -print -depth 2
*
搜索时请使用,因为通常会有多个版本的端口可用。depth参数确保您的返回结果不会不必要地被您不想要的匹配所困扰。
组态
通常,您需要进行一些配置。Apache和Postgres等软件实际上需要它。主要有三个选择:命令行,环境和make配置文件。要开始使用命令行:
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
__MAKE_CONF变量。FreeBSD有一个默认的配置文件:/etc/make.conf
它通常包含有关先前安装的端口和其他系统设置的信息。首先,使用端口选项创建一个文件,调用它~/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
默认设置和所需的配置之间发生意外交互。
总结的话很多,但是配置的复杂性主要是关于应用程序的,而不是端口。例如,Bash实际上没有任何选择。
安装
这是简单的部分:
make install clean
或者你可以
make build
make install
make clean
这只是打字。
就是这样。显然,您还可以做更多的事情,例如递归列出依赖项和配置选项,使用补丁程序进行更新等等。在这里,我将向您介绍《手册》的“ 端口”部分,端口子系统的手册页(有关其他make目标的详细信息)和手册页。make
最近,当从我的软件包管理器之外的源进行安装时,我已经开始使用“ Checkinstall”。它从第三方tarball构建“软件包”,然后可以通过软件包管理器工具进行安装和管理(和卸载)。
查看本文-http: //www.linuxjournal.com/content/using-checkinstall-build-packages-source