从源安装应用程序

gab*_*iel 13 installation source-code install-from-source

我想知道 linux 中所有应用程序的通用安装。那是什么意思?好吧,当我使用 Windows 时,我知道如果我想安装一个应用程序,我双击 .exe 文件,然后下一步,下一步,下一步。

在 linux 中,我明白也许有一种通用(非通用)的方式来安装任何应用程序。也许从源安装?那么是否有任何分步方法可用于像在 Windows 中一样安装应用程序?

我问是因为我不想一直问谷歌,怎么办?所以,我最近设法从本指南中的源代码 freecad 安装 ,我认为作为常用方法,这将是一个非常好的开始,对吗?

但问题是在哪里可以找到正确的源以及应用程序何时具有非常独特的安装方法!

Lek*_*eyn 15

尽管有完善的工具,如 autotools(包括 automake 和 autoconf)和 cmake,但安装说明因程序而异。

由于程序可以使用不同的编程语言,因此很难给出适合所有程序包的通用命令。例如,Python 通常有 setup.py 脚本,其中 C 程序通常使用 autotools 或至少是 Makefile。

我总是从查找安装、自述文件或类似文件开始。如果您需要从源代码编译程序,您可能需要build-essential依赖于编译器和其他通用开发包的包。

根据您尝试编译的程序,您可能需要安装其他依赖项。检查自述./configure文件或脚本的输出(位于提取源根目录中的可执行文件)。例如,如果它说您需要“x11 开发头文件”,请尝试在存储库中查找“x11-dev”或“libx11-dev”(在这种情况下,这libx11-dev就是您要查找的内容)。

使用 autoconf/automake 构建的源代码发行版可以通过以下方式提取和配置:

tar xf foo-1.0.tar.gz
cd foo-1.0
./configure
make
sudo make install
Run Code Online (Sandbox Code Playgroud)

使用./configure --help可用的选项。默认情况下,通常会安装这些文件,/usr/local这是非常好的。除非您要将文件打包成 .deb 文件,否则不要将此前缀更改为 ,/usr因为它可能与包管理系统 (dpkg) 冲突。

make应该开始编译make install将文件安装到指定位置的所有内容(sudo对于写入特权位置(如/usr/local)是必需的)。要稍后卸载它,请从源目录运行sudo make uninstall(前提是使用 autoconf/automake 正确构建了包,这是开发人员的责任,而不是您,用户!

如果您只是对从计算机上的软件中心编译软件包感兴趣,请继续(相应地替换package和版本):

sudo apt-get build-dep package
apt-get source package
cd package-1.0
dpkg-buildpackage -b -uc -us
Run Code Online (Sandbox Code Playgroud)

有关命令的更多详细信息,请参阅相应的手册页。(例如man dpkg-buildpackage在终端中运行)。执行这些命令后,您将在父目录中有一个 .deb 文件。建议尽可能使用 Ubuntu 存储库中的软件包。出于教育原因显示上述步骤,但通常您希望在构建包之前对某些文件进行修改。


Jes*_*per 7

FreeCAD 可在 Ubuntu 软件中心获得,因此无需从源代码构建和安装它。

Ubuntu 软件中心始终是您应该首先查看的地方。安装只是点击一个按钮的问题。

屏幕左侧的栏中有一个 Ubuntu 软件中心的图标。

如果您真的想从源代码构建和安装程序,请查找自述文件或程序附带的其他说明。

许多软件包使用 GNU autotools 作为构建系统,可以使用以下命令构建和安装:

./configure
make
sudo make install
Run Code Online (Sandbox Code Playgroud)

在构建程序之前,您需要检查所需的库和其他依赖项是什么(这也应该在程序的文档中提到)。在packages.ubuntu.com 上,您可以找到包含所需库的Ubuntu 软件包。

假设该程序需要一个名为 的库blah,那么您可能需要安装该软件包libblah-dev(在我上面提到的 Ubuntu 软件包页面上查找确切名称)。

sudo apt-get install libblah-dev
Run Code Online (Sandbox Code Playgroud)