CentOS 6.4で32bit環境の整備(SQLite3も含む)
sqlite3のライブラリを含んだプログラムを32bitでコンパイルする環境を整備。もともとテストマシンは64bitなので32bit関連はインストールされていない。そのためコンパイルがまともに通らない。
sqlite3の32bit版も必要だが、gcc関連も32bitの環境を整備してあげる必要がある。
$ cc -m32 -g -Wall -o sample32 sample32.c -lsqlite3 /usr/include/features.h:385 から include されたファイル中, /usr/include/stdio.h:28 から, sample32.c:7 から: /usr/include/gnu/stubs.h:7:27: error: gnu/stubs-32.h: そのようなファイルやディレクトリはありません $
ヘッダがないんだって。で
を参考にyum whatprovidesで調べてみた。
$ yum whatprovides */stubs-32.h Loaded plugins: fastestmirror, refresh-packagekit, security Loading mirror speeds from cached hostfile * base: ftp.riken.jp * extras: ftp.riken.jp * updates: ftp.riken.jp nginx/filelists_db | 10 kB 00:00 updates/filelists_db | 1.5 MB 00:00 glibc-devel-2.12-1.132.el6.i686 : Object files for development using standard C : libraries. Repo : base Matched from: Filename : /usr/include/gnu/stubs-32.h $ rpm -qa | grep glibc-devel glibc-devel-2.12-1.132.el6.x86_64 $
このglibc-devel.i686に含まれているということようだ。やはり32bitのglibcというのが必要のようだ。なので関連ファイルも含めインストール。
$ su パスワード: # yum install glibc-devel.i686 Loaded plugins: fastestmirror, refresh-packagekit, security Loading mirror speeds from cached hostfile * base: mirror.nus.edu.sg * extras: mirror.nus.edu.sg * updates: mirror.nus.edu.sg Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package glibc-devel.i686 0:2.12-1.132.el6 will be installed --> Processing Dependency: libutil.so.1 for package: glibc-devel-2.12-1.132.el6.i686 --> Processing Dependency: libthread_db.so.1 for package: glibc-devel-2.12-1.132.el6.i686 --> Processing Dependency: librt.so.1 for package: glibc-devel-2.12-1.132.el6.i686 --> Processing Dependency: libresolv.so.2 for package: glibc-devel-2.12-1.132.el6.i686 --> Processing Dependency: libnss_nisplus.so.2 for package: glibc-devel-2.12-1.132.el6.i686 --> Processing Dependency: libnss_nis.so.2 for package: glibc-devel-2.12-1.132.el6.i686 --> Processing Dependency: libnss_hesiod.so.2 for package: glibc-devel-2.12-1.132.el6.i686 --> Processing Dependency: libnss_files.so.2 for package: glibc-devel-2.12-1.132.el6.i686 --> Processing Dependency: libnss_dns.so.2 for package: glibc-devel-2.12-1.132.el6.i686 --> Processing Dependency: libnss_compat.so.2 for package: glibc-devel-2.12-1.132.el6.i686 --> Processing Dependency: libnsl.so.1 for package: glibc-devel-2.12-1.132.el6.i686 --> Processing Dependency: libm.so.6 for package: glibc-devel-2.12-1.132.el6.i686 --> Processing Dependency: libdl.so.2 for package: glibc-devel-2.12-1.132.el6.i686 --> Processing Dependency: libcrypt.so.1 for package: glibc-devel-2.12-1.132.el6.i686 --> Processing Dependency: libcidn.so.1 for package: glibc-devel-2.12-1.132.el6.i686 --> Processing Dependency: libanl.so.1 for package: glibc-devel-2.12-1.132.el6.i686 --> Processing Dependency: libBrokenLocale.so.1 for package: glibc-devel-2.12-1.132.el6.i686 --> Running transaction check ---> Package glibc.i686 0:2.12-1.132.el6 will be installed --> Processing Dependency: libfreebl3.so(NSSRAWHASH_3.12.3) for package: glibc-2.12-1.132.el6.i686 --> Processing Dependency: libfreebl3.so for package: glibc-2.12-1.132.el6.i686 --> Running transaction check ---> Package nss-softokn-freebl.x86_64 0:3.12.9-11.el6 will be updated --> Processing Dependency: nss-softokn-freebl(x86-64) = 3.12.9-11.el6 for package: nss-softokn-freebl-devel-3.12.9-11.el6.x86_64 ---> Package nss-softokn-freebl.i686 0:3.14.3-9.el6 will be installed ---> Package nss-softokn-freebl.x86_64 0:3.14.3-9.el6 will be an update --> Running transaction check ---> Package nss-softokn-freebl-devel.x86_64 0:3.12.9-11.el6 will be updated --> Processing Dependency: nss-softokn-freebl-devel(x86-64) = 3.12.9-11.el6 for package: nss-softokn-devel-3.12.9-11.el6.x86_64 ---> Package nss-softokn-freebl-devel.x86_64 0:3.14.3-9.el6 will be an update --> Running transaction check ---> Package nss-softokn-devel.x86_64 0:3.12.9-11.el6 will be updated ---> Package nss-softokn-devel.x86_64 0:3.14.3-9.el6 will be an update --> Processing Dependency: nss-softokn(x86-64) = 3.14.3-9.el6 for package: nss-softokn-devel-3.14.3-9.el6.x86_64 --> Processing Dependency: pkgconfig(nss-util) >= 3.15.1 for package: nss-softokn-devel-3.14.3-9.el6.x86_64 --> Processing Dependency: pkgconfig(nspr) >= 4.10.0 for package: nss-softokn-devel-3.14.3-9.el6.x86_64 --> Processing Dependency: nss-util-devel >= 3.15.1 for package: nss-softokn-devel-3.14.3-9.el6.x86_64 --> Processing Dependency: nspr-devel >= 4.10.0 for package: nss-softokn-devel-3.14.3-9.el6.x86_64 --> Running transaction check ---> Package nspr-devel.x86_64 0:4.9.2-1.el6 will be updated ---> Package nspr-devel.x86_64 0:4.10.2-1.el6_5 will be an update --> Processing Dependency: nspr = 4.10.2-1.el6_5 for package: nspr-devel-4.10.2-1.el6_5.x86_64 ---> Package nss-softokn.x86_64 0:3.12.9-11.el6 will be updated ---> Package nss-softokn.x86_64 0:3.14.3-9.el6 will be an update --> Processing Dependency: nss-util >= 3.15.1 for package: nss-softokn-3.14.3-9.el6.x86_64 ---> Package nss-util-devel.x86_64 0:3.14.0.0-2.el6 will be updated ---> Package nss-util-devel.x86_64 0:3.15.3-1.el6_5 will be an update --> Running transaction check ---> Package nspr.x86_64 0:4.9.2-1.el6 will be updated ---> Package nspr.x86_64 0:4.10.2-1.el6_5 will be an update ---> Package nss-util.x86_64 0:3.14.0.0-2.el6 will be updated ---> Package nss-util.x86_64 0:3.15.3-1.el6_5 will be an update --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: glibc-devel i686 2.12-1.132.el6 base 978 k Installing for dependencies: glibc i686 2.12-1.132.el6 base 4.3 M nss-softokn-freebl i686 3.14.3-9.el6 base 147 k Updating for dependencies: nspr x86_64 4.10.2-1.el6_5 updates 113 k nspr-devel x86_64 4.10.2-1.el6_5 updates 111 k nss-softokn x86_64 3.14.3-9.el6 base 265 k nss-softokn-devel x86_64 3.14.3-9.el6 base 12 k nss-softokn-freebl x86_64 3.14.3-9.el6 base 157 k nss-softokn-freebl-devel x86_64 3.14.3-9.el6 base 29 k nss-util x86_64 3.15.3-1.el6_5 updates 64 k nss-util-devel x86_64 3.15.3-1.el6_5 updates 66 k Transaction Summary ================================================================================ Install 3 Package(s) Upgrade 8 Package(s) Total download size: 6.2 M Is this ok [y/N]: y Downloading Packages: (1/11): glibc-2.12-1.132.el6.i686.rpm | 4.3 MB 00:03 (2/11): glibc-devel-2.12-1.132.el6.i686.rpm | 978 kB 00:00 (3/11): nspr-4.10.2-1.el6_5.x86_64.rpm | 113 kB 00:00 (4/11): nspr-devel-4.10.2-1.el6_5.x86_64.rpm | 111 kB 00:00 (5/11): nss-softokn-3.14.3-9.el6.x86_64.rpm | 265 kB 00:00 (6/11): nss-softokn-devel-3.14.3-9.el6.x86_64.rpm | 12 kB 00:00 (7/11): nss-softokn-freebl-3.14.3-9.el6.i686.rpm | 147 kB 00:00 (8/11): nss-softokn-freebl-3.14.3-9.el6.x86_64.rpm | 157 kB 00:00 (9/11): nss-softokn-freebl-devel-3.14.3-9.el6.x86_64.rpm | 29 kB 00:00 (10/11): nss-util-3.15.3-1.el6_5.x86_64.rpm | 64 kB 00:00 (11/11): nss-util-devel-3.15.3-1.el6_5.x86_64.rpm | 66 kB 00:00 -------------------------------------------------------------------------------- Total 479 kB/s | 6.2 MB 00:13 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : nss-softokn-freebl-3.14.3-9.el6.i686 1/19 Installing : glibc-2.12-1.132.el6.i686 2/19 Updating : nspr-4.10.2-1.el6_5.x86_64 3/19 Updating : nss-util-3.15.3-1.el6_5.x86_64 4/19 Updating : nspr-devel-4.10.2-1.el6_5.x86_64 5/19 Updating : nss-softokn-freebl-3.14.3-9.el6.x86_64 6/19 Updating : nss-softokn-3.14.3-9.el6.x86_64 7/19 Updating : nss-softokn-freebl-devel-3.14.3-9.el6.x86_64 8/19 Updating : nss-util-devel-3.15.3-1.el6_5.x86_64 9/19 Updating : nss-softokn-devel-3.14.3-9.el6.x86_64 10/19 Installing : glibc-devel-2.12-1.132.el6.i686 11/19 Cleanup : nss-softokn-devel-3.12.9-11.el6.x86_64 12/19 Cleanup : nss-util-devel-3.14.0.0-2.el6.x86_64 13/19 Cleanup : nspr-devel-4.9.2-1.el6.x86_64 14/19 Cleanup : nss-softokn-freebl-devel-3.12.9-11.el6.x86_64 15/19 Cleanup : nss-softokn-3.12.9-11.el6.x86_64 16/19 Cleanup : nss-util-3.14.0.0-2.el6.x86_64 17/19 Cleanup : nspr-4.9.2-1.el6.x86_64 18/19 Cleanup : nss-softokn-freebl-3.12.9-11.el6.x86_64 19/19 Verifying : nss-util-3.15.3-1.el6_5.x86_64 1/19 Verifying : glibc-devel-2.12-1.132.el6.i686 2/19 Verifying : nss-softokn-freebl-3.14.3-9.el6.x86_64 3/19 Verifying : nss-softokn-3.14.3-9.el6.x86_64 4/19 Verifying : nss-softokn-devel-3.14.3-9.el6.x86_64 5/19 Verifying : nspr-4.10.2-1.el6_5.x86_64 6/19 Verifying : glibc-2.12-1.132.el6.i686 7/19 Verifying : nss-softokn-freebl-3.14.3-9.el6.i686 8/19 Verifying : nss-util-devel-3.15.3-1.el6_5.x86_64 9/19 Verifying : nspr-devel-4.10.2-1.el6_5.x86_64 10/19 Verifying : nss-softokn-freebl-devel-3.14.3-9.el6.x86_64 11/19 Verifying : nss-util-devel-3.14.0.0-2.el6.x86_64 12/19 Verifying : nss-softokn-freebl-devel-3.12.9-11.el6.x86_64 13/19 Verifying : nss-util-3.14.0.0-2.el6.x86_64 14/19 Verifying : nspr-devel-4.9.2-1.el6.x86_64 15/19 Verifying : nspr-4.9.2-1.el6.x86_64 16/19 Verifying : nss-softokn-devel-3.12.9-11.el6.x86_64 17/19 Verifying : nss-softokn-freebl-3.12.9-11.el6.x86_64 18/19 Verifying : nss-softokn-3.12.9-11.el6.x86_64 19/19 Installed: glibc-devel.i686 0:2.12-1.132.el6 Dependency Installed: glibc.i686 0:2.12-1.132.el6 nss-softokn-freebl.i686 0:3.14.3-9.el6 Dependency Updated: nspr.x86_64 0:4.10.2-1.el6_5 nspr-devel.x86_64 0:4.10.2-1.el6_5 nss-softokn.x86_64 0:3.14.3-9.el6 nss-softokn-devel.x86_64 0:3.14.3-9.el6 nss-softokn-freebl.x86_64 0:3.14.3-9.el6 nss-softokn-freebl-devel.x86_64 0:3.14.3-9.el6 nss-util.x86_64 0:3.15.3-1.el6_5 nss-util-devel.x86_64 0:3.15.3-1.el6_5 Complete! #
SQLite3の32bit版
32bit版の開発環境がないみたいなので関連パッケージも含めてインストール。
# yum list | grep sqlite qt-sqlite.x86_64 1:4.6.2-26.el6_4 @updates sqlite.x86_64 3.6.20-1.el6 @anaconda-CentOS-201207061011.x86_64/6.3 sqlite-devel.x86_64 3.6.20-1.el6 @anaconda-CentOS-201207061011.x86_64/6.3 apr-util-sqlite.x86_64 1.3.9-3.el6_0.1 base bacula-director-sqlite.x86_64 5.0.0-12.el6 base bacula-storage-sqlite.x86_64 5.0.0-12.el6 base libdbi-dbd-sqlite.x86_64 0.8.3-5.1.el6 base qt-sqlite.i686 1:4.6.2-28.el6_5 updates qt-sqlite.x86_64 1:4.6.2-28.el6_5 updates qt3-sqlite.i686 3.3.8b-30.el6 base qt3-sqlite.x86_64 3.3.8b-30.el6 base sqlite.i686 3.6.20-1.el6 base sqlite-devel.i686 3.6.20-1.el6 base sqlite-doc.x86_64 3.6.20-1.el6 base sqlite-tcl.x86_64 3.6.20-1.el6 base # rpm -qa | grep sqlite qt-sqlite-4.6.2-26.el6_4.x86_64 sqlite-3.6.20-1.el6.x86_64 sqlite-devel-3.6.20-1.el6.x86_64 # yum install sqlite-devel.i686 Loaded plugins: fastestmirror, refresh-packagekit, security Loading mirror speeds from cached hostfile * base: mirror.nus.edu.sg * extras: mirror.nus.edu.sg * updates: mirror.nus.edu.sg Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package sqlite-devel.i686 0:3.6.20-1.el6 will be installed --> Processing Dependency: libsqlite3.so.0 for package: sqlite-devel-3.6.20-1.el6.i686 --> Running transaction check ---> Package sqlite.i686 0:3.6.20-1.el6 will be installed --> Processing Dependency: libreadline.so.6 for package: sqlite-3.6.20-1.el6.i686 --> Running transaction check ---> Package readline.i686 0:6.0-4.el6 will be installed --> Processing Dependency: libtinfo.so.5 for package: readline-6.0-4.el6.i686 --> Running transaction check ---> Package ncurses-libs.i686 0:5.7-3.20090208.el6 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: sqlite-devel i686 3.6.20-1.el6 base 81 k Installing for dependencies: ncurses-libs i686 5.7-3.20090208.el6 base 251 k readline i686 6.0-4.el6 base 176 k sqlite i686 3.6.20-1.el6 base 307 k Transaction Summary ================================================================================ Install 4 Package(s) Total download size: 814 k Installed size: 1.9 M Is this ok [y/N]: y Downloading Packages: (1/4): ncurses-libs-5.7-3.20090208.el6.i686.rpm | 251 kB 00:00 (2/4): readline-6.0-4.el6.i686.rpm | 176 kB 00:00 (3/4): sqlite-3.6.20-1.el6.i686.rpm | 307 kB 00:00 (4/4): sqlite-devel-3.6.20-1.el6.i686.rpm | 81 kB 00:00 -------------------------------------------------------------------------------- Total 106 kB/s | 814 kB 00:07 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : ncurses-libs-5.7-3.20090208.el6.i686 1/4 Installing : readline-6.0-4.el6.i686 2/4 Installing : sqlite-3.6.20-1.el6.i686 3/4 Installing : sqlite-devel-3.6.20-1.el6.i686 4/4 Verifying : ncurses-libs-5.7-3.20090208.el6.i686 1/4 Verifying : sqlite-3.6.20-1.el6.i686 2/4 Verifying : sqlite-devel-3.6.20-1.el6.i686 3/4 Verifying : readline-6.0-4.el6.i686 4/4 Installed: sqlite-devel.i686 0:3.6.20-1.el6 Dependency Installed: ncurses-libs.i686 0:5.7-3.20090208.el6 readline.i686 0:6.0-4.el6 sqlite.i686 0:3.6.20-1.el6 Complete! #