ラベル yum の投稿を表示しています。 すべての投稿を表示
ラベル yum の投稿を表示しています。 すべての投稿を表示

2017/07/05

rpm を tar.bz2 や .spec ファイルからビルドする

rpm ファイルをビルドする機会があったのでそのログ。


環境

  • Scientific Linux release 6.8 (Carbon)
  • rpmbuild 4.8.0(たぶん)
  • httpd 2.4.26
  • distcache 1.5.1


tar.gz ファイルから直接ビルドする

アーカイブ内部に *.spec ファイルがある場合は直接 rpmbuild で指定できます。
  • $ wget http://ftp.riken.jp/net/apache//httpd/httpd-2.4.26.tar.bz2
  • $ rpmbuild -tb httpd-2.4.26.tar.bz2
/root/rpmbuild/RPMS 以下に .rpm ファイルが作成されます。
アーカイブ指定の時は -tb オプション。


.spec ファイルからビルドする

アーカイブに *.spec が無かったりする場合もあります。
その場合は *.spec ファイルを作ってそれを指定してビルドします。
例えば distcache 1.5.1-1 の spec ファイルはこちらのブログ にサンプルがあります。
*.spec ファイルから rpm を作る場合は SOURCES に必要なソースを配置します。
  • $wget https://downloads.sourceforge.net/project/distcache/1.%20distcache-devel/1.5.1/distcache-1.5.1.tar.gz
  • $ mv distcache-1.5.1.tar.gz ~/rpmbuild/SOURCES/
  •  wget -O /root/rpmbuild/SOURCES/distcache-1.5.1.patch https://ja.osdn.net/users/matsuand/pf/LFScripts/scm/blobs/master/BLFS/patch/distcache-1.5.1.patch?export=raw
  • $ rpbuild -bb distcace.spec
スペックファイル指定の場合は -bb オプション。

rpm のインストール

rpm -i とか。消す時は rpm -e。
リストは rpm -aq とかなので rpm のオプションは結構素っ気無い感じ。


参考文献

2013/10/14

vim-enhanced を yum で入れる際に注意すること

vagrantbox.es な Fedora19 でのログ。
Fedora19 でのデフォなのか、 box 化された Fedora19 の設定だったのかは謎だけれど。


vim が vim-minimal だったので vim-enhanced を入れようと
$ yum install vim-enhanced
すると vim-common が vim-minimal と conflict とか出てくる。
Transaction check error:
  file /usr/share/man/man1/vim.1.gz from install of vim-common-2:7.4.027-2.fc19.x86_64 conflicts with file from package vim-minimal-2:7.3.1314-1.fc19.x86_64

ってな訳で vim-minimal を消す
$ yum erase vim-minimal
そうすると依存の関係で sudo が消える。 たぶん visudo とかの関係。
Running transaction
  Erasing    : sudo-1.8.6p7-1.fc19.x86_64              1/2
warning: /etc/sudoers saved as /etc/sudoers.rpmsave
  Erasing    : 2:vim-minimal-7.3.1314-1.fc19.x86_64    2/2
  Verifying  : sudo-1.8.6p7-1.fc19.x86_64              1/2
  Verifying  : 2:vim-minimal-7.3.1314-1.fc19.x86_64

sudo を erase すると /etc/sudoers が消えるので /etc/sudoers.rpmsave にバックアップされるみたい。
なので vim-enhanced を入れる時に sudo も入れて、 /etc/sudoers を元に戻すと元通りのはず
$ yum install vim-enhanced
$ yum install sudo
$ mv /etc/sudoers.rpmsave /etc/sudoers
これで sudo できるし vim も enhanced になってめでたしめでたし。
というか sudo 消えるのこわい。

2013/10/11

Vagrant + Puppet で Fedora 19 に MySQL を入れる

MySQL な環境を構築しよう、ということになったけれど、どうせなので Vagrant でやることに。
と思ったら非常にいろいろハマったのでメモ。

環境

  • OS X Mountain Lion
  • Vagrant 1.3.4

Vagrant のインストール

Vagrant のサイト から最新な 1.3.4 をインストール。
ちなみに /usr/bin/vagrant くらいにシンボリックリンクが貼られるので、 rbenv な vagrant は uninstall した。


Fedora 19 を入れる

Vagrantbox.es から最新な Fedora19 を使うことに。
$ vagrant box add fodora-19 https://dl.dropboxusercontent.com/u/86066173/fedora-19.box
これで box がダウンロードされる。
box は直接起動する訳じゃなくて、
$ vagrant up
した時にコピーされて起動するみたい。
なので
$ vagrant destroy
しても box そのものは消えない。



Puppet で MySQL を入れる

入れようと思ったら大量にハマるなど。
以下に導入ログとトラブルシュートなログ類。

Puppet の Install

$ vagrant plugin install puppet
くらい。 gem からでも入るっぽいけれど、vagrant な例に習って gem の puppet は uninstall した。

Puppet の設定

Vagrantfile に書かれているやつをコメントアウトする。
  config.vm.provision :puppet do |puppet|
    puppet.manifests_path = "manifests"
    puppet.manifest_file  = "mysql.pp"
  end
とか。
mysql.pp とかはマニフェストの名前。何でも良いはず。
ディレクトリ構成は
.
├── Vagrantfile
└── manifests
    └── mysql.pp
みたいな感じになる。
この状態で mysql.pp に設定を書いていく感じ。

 

Puppet の実行

puppet で環境を構築するのは provision すると良いみたい。
up の時に provision も実行するなら
$ vagrant up --provision
しないなら
$ vagrant up --no-provision
1.3 系だと up は初回は provision が走って、次回以降は走らないのがデフォらしい
ちなみに up してる時にも
$ vagrant provision
で provision が実行されて puppet が走る。



エラーログ

ここからエラーログ

IP アドレスが取得できないっぽい

$ vagrant provision
した時に
Running Puppet with mysql.pp...
Could not retrieve macaddress: undefined method `each_line' for nil:NilClass
Could not retrieve macaddress: undefined method `each_line' for nil:NilClass
Could not retrieve macaddress: undefined method `each_line' for nil:NilClass
Could not retrieve ipaddress6: undefined method `scan' for nil:NilClass
Could not retrieve netmask: undefined method `split' for nil:NilClass
Warning: Could not retrieve fact ipaddress
とか怒られる。
IP が見えてないっぽい。
fedora19 には最初から ifconfig とかが入ってないらしいので
$ yum install net-tools
しておく必要があるみたい。
この辺も manifest に書いておくと怒られない。
ちなみにこう怒られたのは yum update の時。

hostname と DNS 周りが変らしい

warning: Could not retrieve fact fqdn
とも言われた。
この辺は hostname が fqdn に対応してない(のかな?)っぽいのと、dnsな設定が変らしい。
どうやら VM の domain が適切に設定できてないとダメらしい。
/etc/resolve.conf に domain な記述が無いといけないらしい
んで、 resolve.conf は vagrant が勝手に設定するらしいので、実行するホストの環境によっては設定されなかったりするっぽい。
generated by NetworkManager とか書かれてたので vagrant 側じゃなくて fedora 側が勝手に作ってるのかもしれないけれど。
無理矢理 /etc/hostname に hostname を書いて、 /etc/resolve.conf に domain を書くと出ない。
ちなみに hostname と dnsdomainname コマンドがおかしい時に出てくるエラーらしい
あと vagrant ssh して
$ factor | grep fqdn
すると、エラーが出る方には fqdn な値が無かったり。
この辺設定できるとエラーは出ないのかもしれない。

そもそも MySQL が Fedora19 に無い

$ yum install mysql
とかがダメで
$ yum intall community-mysql
とからしい
しかも接続してみると MySQL じゃなくて MariaDB とか出てくる。
調べてみると fedora19 から MySQL の default が MariaDB だとか


Vagrantfile と manifests/mysql.pp

書き方はググりながらだったので省略するとして、最終的にできた Vagrantfile と manifest はこんな感じ。
mysql をインストール + 有効化とパッケージのアップデートをしてくれます。
あと hostname の設定。


最終的に

$ vagrant up
$ vagrant provision
で起動と環境構築をしてくれるようになりました。
便利だけれど実行できるようになるまで大分ハマった。
この辺ささっとできると良いのかなーうーん。