前回の記事(SUSE Linuxのコマンドラインでのパッケージ管理)を書く時に rug と zypper というコマンドを知りました。
このコマンドを使ってインストールのソースを変更してみます。

もちろん、YaST (yast2 inst_source) を使えば、簡単に変更できます。
でも、変更対象システムが数十台もあったりしたら、YaSTでインタラクティブに変更するのは大変です。
コマンドラインでできれば、何台あってもそれほど手間ではないので、方法を知っておくのはいいかと思います。

ここでは、SLES10を内蔵ディスクから高速インストールした時に、自動的に追加されるインストールソースを削除して、ローカルに置いた DVDイメージを追加してみます。
追加するメディアタイプは YaST と同様、いろいろと指定可能なので、実際の構成に合わせて適宜変更してください。

内蔵ディスクからインストールした後の状態。

linux:~ # installation_sources -s
# | Enabled | Refresh | Type | Name                                | URI                                                  
--+---------+---------+------+-------------------------------------+------------------------------------------------------
1 | Yes     | Yes     | YaST | SUSE Linux Enterprise Server 10 SP1 | hd:///dist/SLES10SP1?device=/dev/sdb1&filesystem=auto

これを削除して、DVDイメージ /mnt/dist/SLES10SP1-x86_64-DVD.iso を追加します。
ちなみに、installation_sources スクリプトの中でも zypper が使われています。

rug を使う場合

SLES10 SP1 では、デフォルトで zmd (ZENworks Management Daemon) を使うように chkconfig novell-zmd on となっています。
zmd のコマンドライン・フロントエンド rug を使ってみます。

linux:~ # rug service-list

# | Status | Type | Name                                | URI                   
--+--------+------+-------------------------------------+-----------------------
1 | Active | ZYPP | SUSE Linux Enterprise Server 10 SP1 | hd:///dist/SLES10SP...

linux:~ #
linux:~ # rug service-delete 1
Successfully removed service 'hd:///dist/SLES10SP1?device=/dev/sdb1&filesystem=auto&alias=SUSE%20Linux%20Enterprise%20Server%2010%20SP1'
linux:~ # 
linux:~ # rug service-list
--- No services found ---
linux:~ # 
linux:~ # rug service-add -d "SLES10 SP1 DVD" -t zypp "iso:///?iso=SLES10SP1-x86_64-DVD.iso&url=dir:///mnt/dist/"

Adding zypp service...
                                                                                                          100% 

Successfully added service 'iso:///?iso=SLES10SP1-x86_64-DVD.iso&url=dir:///mnt/dist/'
linux:~ # 
linux:~ # rug service-list

# | Status | Type | Name           | URI                                        
--+--------+------+----------------+--------------------------------------------
1 | Active | ZYPP | SLES10 SP1 DVD | iso:///?iso=SLES10SP1-x86_64-DVD.iso&url...

linux:~ # 
linux:~ # rug catalogs

Sub'd? | Name           | Service       
-------+----------------+---------------
       | SLES10 SP1 DVD | SLES10 SP1 DVD

linux:~ # 
linux:~ # rug subscribe "SLES10 SP1 DVD"
Subscribed to 'SLES10 SP1 DVD'
linux:~ # 
linux:~ # rug catalogs

Sub'd? | Name           | Service       
-------+----------------+---------------
Yes    | SLES10 SP1 DVD | SLES10 SP1 DVD

linux:~ # 

zypper を使う場合

openSUSE 10.3 には zmd が含まれていません。また、SLES10 で zmd を止めている場合も rug は使えません。
コマンドラインのパッケージ管理ツールの zypper を使ってみます。

linux:~ # zypper service-list
# | Enabled | Refresh | Type | Name                                | URI                                                  
--+---------+---------+------+-------------------------------------+------------------------------------------------------
1 | Yes     | Yes     | YaST | SUSE Linux Enterprise Server 10 SP1 | hd:///dist/SLES10SP1?device=/dev/sdb1&filesystem=auto
linux:~ # 
linux:~ # zypper service-delete 1
linux:~ # 
linux:~ # zypper service-list
# | Enabled | Refresh | Type | Name | URI
--+---------+---------+------+------+----
linux:~ # 
linux:~ # zypper service-add "iso:///?iso=SLES10SP1-x86_64-DVD.iso&url=dir:///mnt/dist/" "SLES10 SP1 DVD"
Determining iso:///?iso=SLES10SP1-x86_64-DVD.iso&url=dir:///mnt/dist/ source type...
.. not YUM
iso:///?iso=SLES10SP1-x86_64-DVD.iso&url=dir:///mnt/dist/ is type YaST
Added Installation Sources:
[x]* SLES10 SP1 DVD (iso:///?iso=SLES10SP1-x86_64-DVD.iso&url=dir:///mnt/dist/)
linux:~ # 
linux:~ # zypper service-list
# | Enabled | Refresh | Type | Name           | URI                                                      
--+---------+---------+------+----------------+----------------------------------------------------------
1 | Yes     | Yes     | YaST | SLES10 SP1 DVD | iso:///?iso=SLES10SP1-x86_64-DVD.iso&url=dir:///mnt/dist/
linux:~ # 

ここで追加したのは更新されることのないDVDイメージなので、Refresh しなくても問題無いため、service-add の時に --no-refresh オプションを付けておいてもいいかと思います。

このブログの関連記事