falc/robo-system-package

与系统包管理相关的Robo任务。

v1.0.0 2015-09-15 20:55 UTC

This package is not auto-updated.

Last update: 2024-09-24 03:59:36 UTC


README

License Build Status Coverage Status Quality Score

与系统包管理器交互的任务集合。

要求

  • 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) 方法。

目前支持以下包管理器