如何在Linux上使用Git安装软件
版本控制程序
项目中的所有源代码文件都称为代码库。大型项目通常有许多开发人员在代码库上工作。每个代码更改都必须得到跟踪和识别。如果需要,更改必须是可逆的。如果不同的开发人员对同一源代码文件进行更改,则必须合并他们的编辑。
因此,毫不奇怪的是,存在称为版本控制系统的软件程序,可以简化对代码库的更改的管理。版本控制系统在代码库中保存每个文件的所有先前版本,并且记录,注释和跟踪每个更改。
一个叫做Git的小东西
Linux内核的创建者Linus Torvalds开发了一个名为Git的版本控制程序来管理Linux内核代码库。它现在是世界上使用最广泛的版本控制软件。有数以百万计的人在使用它。
使用Git,项目的代码库存储在存储库中。除了位于开发人员计算机上的本地存储库,或者也许位于网络中央服务器上的本地存储库,还有一个不错的做法是拥有一个异地或者远程存储库。
这就是GitHub出现的地方。
GitHub
GitHub是git
成功的结果。创始人看到了对安全托管的远程git存储库的新兴需求。他们启动了提供云平台的业务,以允许开发团队托管远程存储库。截至2019年4月,GitHub托管了超过1亿个存储库。
如果应用程序是一个开源项目,那么将其托管在GitHub上的可能性很高。还有其他可用的存储库平台,例如BitBucket和GitLab,但是GitHub在开源存储库中占有最大份额。
仓库的剖析
GitHub存储库由包含所有重要源代码文件之类的文件的文件夹组成。通常,存储库中还有许多其他类型的文件。可能有文档文件,手册页,软件许可证文件,构建说明和Shell脚本文件。关于存储库应包含或者必须包含的内容没有任何规则,但是有约定。
如果我们知道在一个厨房周围走的路,则可以在任何一个厨房中导航。存储库也是如此。一旦了解了约定,就知道去其中可以找到所需的内容。
因此,如何在计算机上获取存储库的副本,以及如何将程序构建为二进制可执行文件?
自述文件
传统上是在存储库中包含自述文件。它可能称为自述文件,自述文件或者自述文件。它的扩展名可能是.md或者根本没有扩展名。
让我们看一下Atom编辑器的GitHub存储库。我们会看到一长串的文件夹和文件。向下滚动,我们会看到README.md文件的内容。
GitHub自动将自述文件的内容放在存储库的首页上。如果自述文件具有.md扩展名,则它将包含Markdown标记语言。这使开发人员可以使用样式元素,例如字体,项目符号和图像。
通常,自述文件的各个部分将告诉我们项目的内容,类型许可证的类型,维护项目的人员,如何参与以及如何构建和运行应用程序。
如果未列出实际的构建说明,它将告诉我们其中可以找到此信息。其他可能对构建应用程序有用的信息,例如所需的构建工具和其他依赖项,可能会在此处列出,或者链接可能会将我们带到该信息。
盒子仓库
我们的任务是克隆box存储库,然后构建boxes
应用程序。
该存储库遵循与Atom相同的布局。有一个文件夹和文件列表,下面是自述文件的内容。它遵循存储库的标准布局,但是它是一个较小的项目,因此文件夹和文件更少。
自述文件也更简短。它有一个称为开发的部分。在该部分中,有一个标题为从源代码构建的链接。如果我们点击该链接,我们应该找到所需的信息。
通常,导航存储库并找到所需信息需要一些轻量级的侦查,但这并不困难。仔细阅读存储库页面上的所有内容。有时,信息在那里,但可能不会突出显示。
依赖关系
从源代码构建页面有一个名为Linux上的构建的部分,这正是我们所需要的。它说我们必须安装C编译器,Bison和Flex。
编译指令说要发出make
命令,所以我们也需要make
。
构建该应用程序所需的工具是C编译器,Bison,Flex,make和Git(用于将存储库克隆到计算机)。
本文是在运行Ubuntu,Fedora和Manjaro Linux发行版的计算机上进行研究的。没有一个发行版安装了所有这些工具,而每个工具都必须安装一些工具。
安装工具箱
Ubuntu必须安装Git,Flex,Bison和make
。以下是命令:
sudo apt-get install git
sudo apt-get install flex
sudo apt-get install bison
sudo apt-get install make
Fedora必须安装Flex,Bison和make。以下是命令:
sudo dnf install flex
sudo dnf install bison
sudo dnf install make
Manjaro必须安装GCC编译器,Flex和Bison。以下是命令:
sudo pacman -Syu gcc
sudo pacman -Syu flex
sudo pacman -Syu bison
克隆存储库
每个GitHub存储库都有一个特定的Web地址,该地址与Git一起用于将存储库克隆到计算机。在box资料库的主页上,有一个绿色的按钮,标记为"克隆或者下载"。
点击按钮查看网址。这是克隆存储库时必须传递给git命令的地址。
切换到我们想要将存储库克隆到的目录,然后使用此命令。如果终端窗口支持它,则可以将网址复制并粘贴到命令中。按Ctrl + Shift + V粘贴到GNOME终端窗口。
Git会克隆远程存储库并在计算机上创建一个localone,告诉我们它正在克隆到一个名为boxs的目录中。
在发出git命令的目录中创建了boxs目录。如果切换到boxs目录并查看内容,则会看到与GitHub页面上相同的文件和文件夹列表。
大!我们已成功将源代码和其他文件克隆到我们的计算机中。现在,我们需要构建应用程序。
构建应用程序
要构建该应用程序,我们必须遵循GitHub存储库上的指示。有时,我们将运行特定的shell文件,而其他人将运行make
。我们遵循的构建说明告诉我们运行make
。
make实用程序从makefile读取并执行一组指令。这些指令告诉make
如何编译程序并将其链接在一起。 make将指令传递给编译器和其他构建工具。
我们被告知要使用的命令将调用两次make。第一个对make的调用将构建应用程序,第二个将运行一系列测试。
构建说明告诉我们使用的命令是:
make && make test
在终端窗口中,许多行的输出快速滚动。大约一分钟后,我们将返回到命令提示符。
部署盒子应用程序
该应用程序已构建,并且我们有一个可执行的二进制文件。现在,我们必须将二进制文件复制到/ usr / bin /目录。这样,当我们尝试使用shell程序时,它就可以找到它。
对于某些应用程序,这可能就是我们要做的。在其他情况下,可能需要将其他文件(例如手册页和配置文件)复制到文件系统中的位置。后者是我们与新应用程序必须要做的事情,因为它在构建说明中。
使用sudo运行这些命令。第一个命令将手册页复制到man1目录中:
sudo cp doc/boxes.1 /usr/share/man/man1
接下来,将全局配置文件复制到/ usr / share /中的目录:
sudo cp boxes-config /usr/share/boxes
最后,将二进制文件复制到/ usr / bin:
sudo cp src/boxes /usr/bin
测试盒子应用
让我们看看它是否全部正常!尝试打开" boxes"命令的手册页。
man boxes
令人鼓舞!我们会看到一个手册页,告诉我们如何使用" boxes"命令。
按Q退出人工系统,然后尝试使用boxes
命令。
echo iGiftIdea | boxes
我们得到了响应:
考虑到我们已付出的所有努力,这似乎有些不足,但是此练习的重点是引导我们完成从GitHub撤回存储库并构建应用程序的过程。
"框"命令允许我们将通过管道传递给它的文本包装在各种框架中。其中一些可以用作源代码文件中的注释。例如,以上格式将用作C源代码文件中的注释。其他人纯粹是装饰性的。 -d(设计)选项允许我们选择框架的样式。
echo iGiftIdea | boxes -d whirly
echo iGiftIdea | boxes -d c-cmt2
有很多种设计可供选择。要查看所有内容,请使用以下命令:
boxes -l | less
构建完成
从源代码构建的步骤通常很简单:
查看存储库上的构建说明。
检查我们是否已安装必需的工具并安装所有缺少的工具。
将存储库克隆到计算机。
按照构建说明进行操作,这些操作通常只需键入" make"即可。
将文件复制到所需位置。