falc / robo-system-package
与系统包管理相关的Robo任务。
v1.0.0
2015-09-15 20:55 UTC
Requires
- codegyre/robo: ~0.5.0
Requires (Dev)
- phpunit/phpunit: ~4.1
This package is not auto-updated.
Last update: 2024-09-24 03:59:36 UTC
README
与系统包管理器交互的任务集合。
要求
- Robo ~0.5 (0.5.0或更高)
安装
将 falc/robo-system-package
包添加到您的 composer.json
composer require falc/robo-system-package
将 Falc\Robo\Package\loadTasks
特性添加到您的 RoboFile
class RoboFile extends \Robo\Tasks { use Falc\Robo\Package\loadTasks; // ... }
任务
安装
安装单个包
$this->taskPackageInstall() ->packageManager('yum') ->package('package1') ->run();
安装多个包
$this->taskPackageInstall() ->packageManager('yum') ->packages(['package1', 'package2']) ->run();
紧凑格式
$this->taskPackageInstall('yum', ['package1', 'package2'])->run();
允许条件性地指定包
$install = $this->taskPackageInstall('yum', ['package1']); if ($requiresPackage2) { $install->package('package2'); } $install->run();
可以指定一个模式
$this->taskPackageInstall() ->packageManager('yum') ->package('package1-*') // Installs all packages starting with "package1-" ->run();
可以与 taskSshExec()
结合使用以在远程服务器上安装包
$installTask = $this->taskPackageInstall() ->packageManager('yum') ->packages(['package1', 'package2']); $this->taskSshExec('remote.example.com') ->remoteDir('/home/user') ->printed(false) // Do not display output ->exec($installTask) ->run();
卸载
卸载单个包
$this->taskPackageUninstall() ->packageManager('yum') ->package('package1') ->run();
卸载多个包
$this->taskPackageUninstall() ->packageManager('yum') ->packages(['package1', 'package2']) ->run();
紧凑格式
$this->taskPackageUninstall('yum', ['package1', 'package2'])->run();
可以指定一个模式
$this->taskPackageUninstall() ->packageManager('yum') ->package('package1-*') // Uninstalls all packages starting with "package1-" ->run();
可以与 taskSshExec()
结合使用以从远程服务器卸载包
$uninstallTask = $this->taskPackageUninstall() ->packageManager('yum') ->packages(['package1', 'package2']); $this->taskSshExec('remote.example.com') ->remoteDir('/home/user') ->printed(false) // Do not display output ->exec($uninstallTask) ->run();
更新
更新单个包
$this->taskPackageUpdate() ->packageManager('yum') ->package('package1') ->run();
更新多个包
$this->taskPackageUpdate() ->packageManager('yum') ->packages(['package1', 'package2']) ->run();
不指定任何包以执行完整更新
$this->taskPackageUpdate() ->packageManager('yum') ->run();
紧凑格式
// Update some packages $this->taskPackageUpdate('yum', ['package1', 'package2'])->run(); // Update everything $this->taskPackageUpdate('yum')->run();
可以指定一个模式
$this->taskPackageUpdate() ->packageManager('yum') ->package('package1-*') // Updates all packages starting with "package1-" ->run();
可以与 taskSshExec()
结合使用以在远程服务器上更新包
$updateTask = $this->taskPackageUpdate() ->packageManager('yum') ->packages(['package1', 'package2']); $this->taskSshExec('remote.example.com') ->remoteDir('/home/user') ->printed(false) // Do not display output ->exec($updateTask) ->run();
方法
所有任务都实现了这些方法
packageManager($packageManager)
: 设置要使用的包管理器。package()
: 将包添加到包列表。packages()
: 将包添加到包列表。verbose()
: 启用详细模式。
包管理器
每个任务都需要在构造函数中设置包管理器,或者使用 packageManager($packageManager)
方法。
目前支持以下包管理器