如何在 Ubuntu 上安装 Composer:无痛安装指南

在软件开发领域,无论是规模宏大的复杂项目还是小巧简单的应用程序,几乎所有项目都需要依赖外部的库、模块或组件才能正常运转。这些为了保证软件正常运行所必需的外部资源,我们称之为“依赖项”。

有效管理项目中存在的各种依赖关系至关重要。幸运的是,现在有许多工具可以帮助我们自动化依赖管理流程,从而简化开发人员的工作。选择哪种依赖管理工具,很大程度上取决于你所使用的编程语言和生态系统。

如果你正在使用PHP进行项目开发,那么Composer无疑是管理项目依赖项的最佳选择。

Composer 是什么?

Composer 是一款专为PHP设计的依赖管理工具。它受到了Node.js的npm和Ruby的Bundler的启发,可以让你轻松声明PHP项目所需的外部库,并自动管理这些依赖关系。

这意味着Composer会自动安装项目所需的所有依赖项,并确保它们保持更新。

需要强调的是,Composer并非像Apt或Yum那样的包管理器。虽然它也涉及到库的管理,但默认情况下,这些库并不会全局安装在你的计算机上。相反,Composer是基于项目进行依赖管理的,它会将依赖项本地安装在你正在开发的PHP项目目录中。

此外,Composer还能帮助你确定项目中可以安装和需要安装的软件包的版本,并自动完成安装过程。它还提供了一个命令,可以让你轻松更新项目中的所有依赖项。

总而言之,Composer是使用PHP进行项目开发必不可少的工具。它不仅可以高效地管理依赖关系,还提供了一个名为Packagist 的存储库,其中包含了大量的PHP软件包和库,你可以将它们作为依赖项添加到你的PHP项目中。

正确地使用Composer等依赖管理工具,可以实现软件的模块化开发,实现无缝的版本控制,并增强团队之间的协作。此外,它还有助于避免软件中出现兼容性问题,并使项目更易于维护。

接下来,我们将介绍如何在Ubuntu系统中安装Composer。但是,在安装之前,让我们先来看看需要满足哪些先决条件。

在 Ubuntu 中安装 Composer 的先决条件

要在Ubuntu中安装Composer,你需要确保:

1. 你能够以root用户身份访问计算机的终端,并执行命令。

2. 你的计算机上安装了PHP 7.2.5或更高版本。你可以通过打开终端并执行以下命令来检查你的计算机上是否安装了PHP以及版本号:

php -version

如果安装了PHP,你将会看到类似以下的输出信息:

如果未安装PHP,你可以执行以下命令进行安装:

sudo apt install php

3. 你拥有一个版本控制系统。Git是一个非常好的选择。通过运行以下命令,你可以确认是否安装了Git:

git --version

如果安装了Git,你会看到类似以下的版本号输出:

如果没有安装Git,请运行以下命令进行安装:

sudo apt install git

4. 你的计算机上安装了一个用于解压缩文件的存档管理器。tar就足够了。 通过运行以下命令检查是否安装了tar:

tar --version

如果没有安装tar,你可以通过运行以下命令进行安装:

sudo apt-get install tar

满足以上所有先决条件后,你就可以开始安装Composer了。

如何在Ubuntu上安装Composer

在安装Composer时,你可以选择将其全局安装在计算机上,也可以将其本地安装在PHP的安装环境中。与本地安装不同,全局安装允许你从计算机上的任何目录访问和调用Composer。

全局安装Composer是推荐的安装方式,这也是我们接下来将要进行的操作。

通过终端在Ubuntu上安装Composer,需要运行Composer官方网站上下载页面提供的脚本。

请按照以下步骤在Ubuntu上全局安装Composer:

1. 打开终端,执行以下命令,将Composer的安装程序下载到当前目录。

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

2. 执行以下命令,验证安装程序的SHA-384哈希值。

php -r "if (hash_file('sha384', 'composer-setup.php') === 'e21205b207c3ff031906575712edab6f13eb0b361f2085f1f1237b7126d785e826a450292b6cfd1d64d92e6563bbde02') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

安装程序的SHA-384哈希值是一个加密的哈希值,用于验证Composer安装程序的完整性。换句话说,这是一种安全措施,可以确保你下载的安装程序没有被篡改或损坏。

运行上述命令后,你应该看到一条输出信息,表明安装程序已验证,如下所示。当确认安装程序的完整性之后,请继续执行后续步骤。

3. 执行以下命令,运行安装程序。

php composer-setup.php

你应该看到如下输出,确认Composer已成功安装。

请注意,`composer.phar`(Composer的可执行文件)已经添加到你安装它的目录中。

4. 由于Composer已经成功安装,请运行以下命令删除之前下载的安装程序,因为它不再需要了。

php -r "unlink('composer-setup.php');"

5. 为了确保Composer已全局安装,并且可以从任何目录调用它,你需要将 `composer.phar` 文件移动到你的PATH路径上的目录中。为此,请执行以下命令,并在出现提示时提供你的密码。

sudo mv composer.phar /usr/local/bin/composer

6. 通过执行以下命令,验证Composer是否已成功安装:

composer

如果Composer已成功安装,你应该看到类似以下的输出。

如何使用 Composer

安装Composer后,下一步就是使用它来管理依赖项。正如前面提到的,Composer有一个名为Packagist的存储库,其中包含了可以使用Composer作为依赖项安装的软件包。

为了演示如何使用Composer,我们将安装一个名为http-message 的包,它定义了HTTP消息的接口。

要使用Composer安装`http-message`,请按照以下步骤操作:

1. 创建一个名为`composerDemo`的新文件夹,并通过在终端中分别执行以下命令导航到该目录:

mkdir composerDemo
cd composerDemo

2. 通过执行以下命令在目录中创建一个`.gitignore`文件:

touch .gitignore

此文件允许你指定哪些文件不应被Git跟踪。

3. 通过执行以下命令,为你的项目生成`composer.json` 文件:

composer init

`composer.json` 是Composer使用的中央配置文件。 你可以在其中指定描述项目的元数据,并指定项目所依赖的依赖项,以便Composer可以自动为你管理它们。

上述命令会生成以下输出:

该引导程序会指导你创建`composer.json` 文件。 在第一个提示中,按Enter键以接受建议的项目名称。

4. 在下一个提示中,提供项目的一个简短描述,然后按Enter键。你可以粘贴下面给出的简短描述,然后按Enter。

A demonstration of how to use PHP Composer

5. 下一个提示会询问作者;按Enter键使用默认值即可。

6. 接下来,系统会要求你指定最低稳定性。为此,你可以直接按Enter键保持为空,然后跳转到下一个提示。

7. 下一个提示要求你指定软件包类型。对于此处,输入`project`然后按Enter,如下所示:

8. 在询问许可证的提示中,按Enter键保持为空并跳转到下一个提示。

9. 然后系统会询问你是否要指定依赖项;对于此处,请按Enter键选择“yes”。然后,这将提示你搜索软件包。

10. 在搜索软件包的提示中,输入`http-message`并按Enter键。这将会搜索指定的软件包并返回搜索结果,如下所示:

我们感兴趣的软件包是第一个名为`psr/http-message` 的软件包。要选择它,请输入与其关联的号码,然后按Enter键。因此,输入`0`(零),然后按Enter键。

11. 下一个提示是输入所需的版本约束(或留空以使用最新版本)。为此,我们需要指定要使用的版本,或将其留空以使用最新版本。

要检查软件包的最新版本,请访问Packagist上的该软件包页面。目前,最新版本是2.0版本,如下图所示:

一旦有可用的更新,Composer就会自动更新软件包。但是,你可能不希望它更新到与你当前在项目中使用的版本不向后兼容的版本,因为这可能会破坏你的PHP代码。为了避免这种情况,请输入以下内容以指定软件包版本,然后按Enter:

^2.0

这告诉Composer安装2.0版本或更高版本,只要该更高版本向后兼容即可。

12. 然后,系统会提示你搜索另一个软件包; 而是按Enter键跳转到下一个提示,而不搜索其他软件包。

13. 当提示你定义开发依赖项时,请按Enter键。 在搜索软件包的提示时,请按Enter键跳过它,因为我们的开发依赖项将与我们的实时依赖项相同。

14. 下一个提示要求你添加PSR-4自动加载映射。按Enter键跳过它。

15. 这将为你提供刚刚生成的`composer.json` 文件的预览,如下所示:

按Enter键确认生成。

16. 下一个提示会询问你是否要安装指定的依赖项。为此,按Enter键安装它们,如下所示:

17. 在终端中,输入以下命令以在代码编辑器中打开你刚刚创建的项目。

code .

结果如下所示:

请注意,已经生成了一个`composer.json` 文件,并且我们的依赖项在`require` 键下指定。安装的依赖项则会被安装在名为`vendor` 的目录中。

18. 为了避免跟踪包含所有依赖项的`vendor` 目录,请打开 `.gitignore` 文件并粘贴以下行。

/vendor/

建议你不要跟踪此文件,因为它可能会变得非常大,并且可以轻松地从`composer.json` 文件自动安装依赖项。

19. 创建`composure.json` 文件后,你可以通过编辑`composure.json` 文件中的所需部分轻松添加新的依赖项。 例如,要添加一个名为 `log` 的软件包,请将其添加到`require` 部分,如下所示:

"require": {
        "psr/http-message": "^2.0",
        "psr/log": "^3.0.0"
    },

20. 要在项目中安装新的依赖项,请返回终端并执行:

composer update

结果如下所示:

这将会安装你刚刚添加到`composure.json` 文件中的软件包。

至此,你现在就可以开始使用PHP项目,并使用Composer来管理项目中的依赖项了。

如何优化Composer以实现更好的软件包管理

为了让Composer更高效地工作,请确保准确指定依赖项的版本约束。一个例子是我们在执行时使用的`^2.0`。

避免使用非常宽泛的版本限制,例如 `*`,这意味着Composer可以安装任何版本。这可能会导致项目中出现兼容性问题和稳定性问题,因为你无法预测Composer会安装哪个版本。

此外,避免向你的 `composer.json` 文件添加过多的自定义脚本。只添加必要的脚本即可。过多的脚本往往会导致依赖管理过程产生巨大的开销。

为了优化Composer的运行速度,可以启用PHP的curl扩展。你还可以使用Composer插件,例如`hirak/prestissimo`,它可以并行执行Composer操作,从而加快软件包的安装速度。

你还可以清理Composer的缓存,以删除旧的和未使用的软件包,从而优化其性能。此外,请记住不要跟踪和提交Composer安装软件包的`vendor`目录。这将有助于加快项目存储库的克隆和更新速度。

如何卸载Composer

如果你不再想在Ubuntu中使用Composer,可以通过执行以下命令将其卸载:

sudo rm -rf /usr/local/bin/composer

你可以通过执行以下命令来确认Composer是否已成功卸载:

composer

如果完全卸载,你应该会看到如下输出信息:

结论

依赖管理是项目开发过程中至关重要的一个环节。高效的依赖关系管理可以确保你避免项目中的兼容性问题,并拥有更易于维护的项目。

此外,它还能够促进模块化的软件开发,并加强开发团队之间的协作。如果你正在使用PHP进行项目开发,那么强烈建议你使用Composer来高效管理项目中的依赖项。

接下来,你还可以了解什么是Ubuntu PPA,以及如何安装它。