openpsa/poser

全局安装 Composer 包的 CLI 可执行文件

dev-master 2018-01-31 11:08 UTC

This package is auto-updated.

Last update: 2024-09-13 11:13:19 UTC


README

poser 是 Composer 的 global 命令的替代实现,该命令将软件包安装在系统全局位置。与 PEAR 一样,软件包的 CLI 可执行文件会自动添加到 PATH 中。

Composer 是一个强大的工具,但诚实地讲:它的 global 命令命名有些不准确:使用它安装的软件包最终会出现在 Composer 的主目录中,这个目录是从当前用户的家目录派生出来的。所以这里的“全局”实际上意味着用户级而不是系统级,这与 PEAR 所做的一样。

poser 试图弥合这个差距:无论哪个用户触发了命令,它都将软件包安装到单个位置(/usr/local/share/poser),并且它会自动将已安装软件包的 bin 文件链接到 /usr/local/bin。这意味着 Composer 软件包的命令行工具将立即对所有用户可用,无需在 /etc/profile 或其他系统深处进行任何调整。

使用方法

命令行语法和所有行为都与 Composer 完全相同,因此您可以使用它们的 文档 来了解所有命令的概述。唯一的区别是当前禁止使用 global 命令。这不仅仅是因为它难以实现,而是因为使用 poser 来执行这一操作并没有太多意义。它旨在成为Composer的一个专门版本,用于安装全局软件包。

# Install PHPUnit and create symlink for phpunit
poser require phpunit/phpunit

# Uninstall PHPUnit and remove symlink
poser remove phpunit/phpunit

# You can use other commands and arguments as in Composer
poser show --installed

安装

从 git

克隆此存储库,进入主目录,然后运行 composer

git clone https://github.com/flack/poser.git
cd poser
php composer.phar install

之后,poser 将会添加到您的 PATH 中,您就可以开始安装软件包了。

虽然保留 git 存储库可能显得有些繁琐,但当前的替代方案看起来是这样的

通过 Composer

首先,您必须在 Composer 的主目录(通常在 Linux 中为 /home/[username]/.composer)中的 composer.json 文件中添加 "minimum-stability": "alpha"。如果该文件尚不存在,则创建一个包含以下内容的文件

{
    "minimum-stability": "alpha",
    "require": {
    }
}

(具有讽刺意味的是,这是必要的,因为 Composer 的当前版本不符合其默认的 minimum-stability 要求 stable..)

之后,您可以使用 Composer 全局安装 poser

php composer.phar global require openpsa/poser:dev-master

您需要自己将 poser 链接到您的 PATH,因为没有方法可以自动完成此操作,除非有一个专门的安装程序包,这虽然可行,但现在似乎有些过度。

注意事项

poser 是一个快速编写的概念验证,因为我预计 Composer 团队将在某个时候在核心中直接实现这种行为。这只是为了让我们在那时之前有所依靠,因此有一些限制

  • /usr/local/bin/usr/local/share/poser 目前是硬编码的(但可以通过相对较少的努力使其可配置)
  • 目前不支持 Windows。我想它可能可以被做成工作,因此欢迎拉取请求
  • 显然,正常的 Unix 文件权限规则仍然适用。因此,您应该确保所有应该使用全局安装工具的用户实际上都有权访问 /usr/local/share/poser
  • 如果您通过Composer或删除git仓库来卸载Poser,您需要手动从/usr/local/bin中删除poser的符号链接