openpsa / poser
全局安装 Composer 包的 CLI 可执行文件
Requires
- composer/composer: ^1.0
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
的符号链接