37736
あるサーバの`yum`のリポジトリを変えたくなくて試験サーバでRPMをダウンロードすることを思いつきました。  
`yum`の`downloadonly`でダウンロードしようとしたのですが、試験サーバでは幾つかのモジュールが既にインストールされていて`reinstall`を必要としていました。

```

    パッケージ php-5.6.31-1.el7.remi.x86_64 はインストール済みか最新バージョンです
    パッケージ php-cli-5.6.31-1.el7.remi.x86_64 はインストール済みか最新バージョンです
    パッケージ php-common-5.6.31-1.el7.remi.x86_64 はインストール済みか最新バージョンです
    パッケージ php-gd-5.6.31-1.el7.remi.x86_64 はインストール済みか最新バージョンです
    パッケージ php-mbstring-5.6.31-1.el7.remi.x86_64 はインストール済みか最新バージョンです
    パッケージ php-mysqlnd-5.6.31-1.el7.remi.x86_64 はインストール済みか最新バージョンです
    パッケージ php-pdo-5.6.31-1.el7.remi.x86_64 はインストール済みか最新バージョンです
    パッケージ php-soap-5.6.31-1.el7.remi.x86_64 はインストール済みか最新バージョンです
    パッケージ php-tidy-5.6.31-1.el7.remi.x86_64 はインストール済みか最新バージョンです
    パッケージ php-xml-5.6.31-1.el7.remi.x86_64 はインストール済みか最新バージョンです
    パッケージ php-5.6.31-1.el7.remi.x86_64 はインストール済みか最新バージョンです
    
```

`reintall`でダウンロードした後に`install`を実行したので全部ダウンロードできたのですが、  
ふと、下記のように両方指定出来ないものかと考えました。

```

    yum install reinstall --setopt=protected_multilib=false --skip-broken --downloadonly --downloaddir=. --enablerepo=remi,remi-php56 php php-bcmath php-cli php-common php-dba php-devel php-embedded php-enchant php-fpm php-gd php-imap php-intl php-ldap php-mbstring php-mcrypt php-mysqlnd php-odbc php-pdo php-pear php-pecl-apc php-pecl-apc-devel php-pecl-memcache php-pgsql php-process php-pspell php-recode php-snmp php-soap php-tidy php-xml php-xmlrpc php-zts > yum_module_download.log
    
```

上記を走らせて見ると`reinstall`というモジュールを探しにいってしまうのですが、両方指定できる方法はないのでしょうか？
CC BY-SA 3.0
2017-09-05T08:42:43.927
37728
2017-09-05T13:38:56.567
question
php yum
yumでinstallオプションと同時にreinstallオプションを使えるか
`yum`コマンドの`install`または`reinstall`オプションは同時に指定することはできません。

* * *

本来やりたい事はrpmパッケージのダウンロードかと思われるので、もしそうであれば`yumdownloader`コマンドを試してみてください。  
`yumdownloader`は`yum-utils`パッケージに含まれるコマンドなので、確認の上インストールしておきます。

```

    $ yum install yum-utils -y
    $ which yumdownloader
    /usr/bin/yumdownloader
    
```

基本的にはパッケージ名を指定して実行するだけでカレントディレクトリにrpmパッケージをダウンロードすることができますが、他にも`--destdir
DIR`で保存先の指定、`--resolve`で依存パッケージも合わせてダウンロードさせることができます。  
パッケージ名はワイルドカードでも指定できるので、今回の例であれば以下のように実行するとよいでしょう。

```

    $ yumdownloader --destdir /tmp --resolve php*
    
```
CC BY-SA 3.0
2017-09-05T13:38:56.567
37736
2017-09-05T13:38:56.567
3060
37728
answer