tarをバージョンアップしてみました | ぼぶろぐ

ぼぶろぐ

以前は、あいらぶLinux♪というタイトルでしたが、
最近はLinux以外のことも書いているので、タイトルを変更しました。
ぼぶちゃんのぶろぐでぼぶろぐです。

■tarをバージョンアップしてみました


とあるファイルの拡張子が"xz"を解凍しようとしたところ、

私のつかっているLinuxのtarでは対応していなかったようです。


このサイトを参考に以下を実行してみる


・Linuxでのファイルの圧縮・解凍
http://linuxserver.jp/Linux/Linux%E3%81%A7%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E5%9C%A7%E7%B8%AE%E3%83%BB%E8%A7%A3%E5%87%8D.php


[root@bobchan bobchan]# tar Jxvf FreeBSD-8.2-RELEASE-i386-dvd1.iso.xz
tar: invalid option -- J
Try `tar --help' or `tar --usage' for more information.


-Jオプションが無いようです…


この時のtarのバージョンは、1.15でした。

[root@bobchan bobchan]# tar --version
tar (GNU tar) 1.15.1



以下のページを見ると1.22から-Jオプションが使えるみたいです。


・Tar
http://www.gnu.org/software/tar/#downloading



早速、最新のパッケージ(1.26)をダウンロードして入れてみます。
手順は以下を参考にしてます。


・【 「tar.gz」ソース・パッケージをインストールする 】
http://itpro.nikkeibp.co.jp/article/COLUMN/20060228/231211/


[bobchan@bobchan ~]$ tar zxvf tar-1.26.tar.gz
tar-1.26/
tar-1.26/m4/
tar-1.26/m4/lib-link.m4
tar-1.26/m4/include_next.m4
tar-1.26/m4/strndup.m4
tar-1.26/m4/mempcpy.m4
tar-1.26/m4/inttypes_h.m4
:
(省略)


[bobchan@bobchan ~]$ cd tar-1.26
[bobchan@bobchan tar-1.26]$ ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking how to create a ustar tar archive... gnutar
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
:
(省略)


[bobchan@bobchan tar-1.26]$ make
make all-recursive
make[1]: Entering directory `/home/bobchan/tar-1.26'
Making all in doc
make[2]: Entering directory `/home/bobchan/tar-1.26/doc'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/bobchan/tar-1.26/doc'
Making all in gnu
make[2]: Entering directory `/home/bobchan/tar-1.26/gnu'
GEN alloca.h
:
(省略)

[bobchan@bobchan tar-1.26]$ su
Password:
[root@bobchan tar-1.26]# make install
Making install in doc
make[1]: Entering directory `/home/bobchan/tar-1.26/doc'
make[2]: Entering directory `/home/bobchan/tar-1.26/doc'
make[2]: Nothing to be done for `install-exec-am'.
test -z "/usr/local/share/info" || /bin/mkdir -p "/usr/local/share/info"
/usr/bin/install -c -m 644 ./tar.info ./tar.info-1 ./tar.info-2 '/usr/local/share/info'
make[2]: Leaving directory `/home/bobchan/tar-1.26/doc'
make[1]: Leaving directory `/home/bobchan/tar-1.26/doc'
Making install in gnu
make[1]: Entering directory `/home/bobchan/tar-1.26/gnu'
make install-recursive
:
(省略)

[root@bobchan tar-1.26]# tar --version
tar (GNU tar) 1.26
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html >.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by John Gilmore and Jay Fenlason.


バージョンアップが完了しました。



最初のファイルを再度解凍してみる


[root@bobchan bobchan]# tar Jxvf FreeBSD-8.2-RELEASE-i386-dvd1.iso.xz
tar (child): xz: Cannot exec: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now


ん?なんかうまくいかない…

tarは関係なさそうなので、解凍するための別の方法を調べます。


【追記】

どうやらtarで解凍できるのは、tar+xz形式のものだけのようでした。

xzを解凍するためにはxzをインストールする必要があるということがわかりました。

また、とても初歩的なところでつまづいていることがわかりました…


Linux - 圧縮・解凍

http://www10.atwiki.jp/shirayuu/pages/42.html



なので、xzをインストールしてみました。


XZ Utils の使い方

http://s-yata.jp/docs/xz-utils/



[root@bobchan bobchan]# yum install -y xz xz-devel
Failed to set locale, defaulting to C
Loaded plugins: downloadonly, fastestmirror, priorities, versionlock
Loading mirror speeds from cached hostfile
* base: ftp.iij.ad.jp
* extras: ftp.iij.ad.jp
* rpmforge: apt.sw.be
* updates: ftp.iij.ad.jp
updates | 1.9 kB 00:00
108 packages excluded due to repository priority protections
Reading version lock configuration
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package xz.i386 0:4.999.9-0.3.beta.20091007git.el5 set to be updated
--> Processing Dependency: xz-libs = 4.999.9-0.3.beta.20091007git.el5 for package: xz
--> Processing Dependency: liblzma.so.0 for package: xz
---> Package xz-devel.i386 0:4.999.9-0.3.beta.20091007git.el5 set to be updated
--> Running transaction check
---> Package xz-libs.i386 0:4.999.9-0.3.beta.20091007git.el5 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

======================================================================================================================================================
Package Arch Version Repository Size
======================================================================================================================================================
Installing:
xz i386 4.999.9-0.3.beta.20091007git.el5 base 146 k
xz-devel i386 4.999.9-0.3.beta.20091007git.el5 base 40 k
Installing for dependencies:
xz-libs i386 4.999.9-0.3.beta.20091007git.el5 base 100 k

Transaction Summary
======================================================================================================================================================
Install 3 Package(s)
Upgrade 0 Package(s)

Total download size: 286 k
Downloading Packages:
(1/3): xz-devel-4.999.9-0.3.beta.20091007git.el5.i386.rpm | 40 kB 00:00
(2/3): xz-libs-4.999.9-0.3.beta.20091007git.el5.i386.rpm | 100 kB 00:00
(3/3): xz-4.999.9-0.3.beta.20091007git.el5.i386.rpm | 146 kB 00:00
------------------------------------------------------------------------------------------------------------------------------------------------------
Total 110 kB/s | 286 kB 00:02
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : xz-libs 1/3
Installing : xz-devel 2/3
Installing : xz 3/3

Installed:
xz.i386 0:4.999.9-0.3.beta.20091007git.el5 xz-devel.i386 0:4.999.9-0.3.beta.20091007git.el5

Dependency Installed:
xz-libs.i386 0:4.999.9-0.3.beta.20091007git.el5

Complete!
[root@bobchan bobchan]# xz -dv FreeBSD-8.2-RELEASE-i386-dvd1.iso.xz
FreeBSD-8.2-RELEASE-i386-dvd1.iso.xz (1/1)
100.0 % 1970.7 MiB / 2171.5 MiB = 0.908 12 MiB/s 2:57
[root@bobchan bobchan]# ls -l FreeBSD-8.2-RELEASE-i386-dvd1.iso
-rw-rw-r-- 1 bobchan bobchan 2276931584 Sep 20 01:29 FreeBSD-8.2-RELEASE-i386-dvd1.iso


うまく解凍することができました。