aix: 大容量ファイル

aix: 大容量ファイル
/opt/freeware/bin/ls //media/nfs/slack64/pubblica
/opt/freeware/bin/ls: cannot open directory //media/nfs/slack64/pubblica: Value too large to be stored in data type

これはPerlzのcoreutils-8.23とaixで再コンパイルされた8.24で発生します。 fs は nfs です。それを処理する方法?

これはcoreutils仕様です。

Summary: The GNU core utilities: a set of tools commonly used in shell scripts
Name:    coreutils
Version: 8.24
Release: 1
License: GPL
Group:   System Environment/Base
URL:     http://www.gnu.org/software/coreutils/
Source0: ftp://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.gz
Source1: ftp://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz.sig
Source2: %{name}-DIR_COLORS
Source3: %{name}-DIR_COLORS.xterm
Source4: %{name}-colorls.sh
Source5: %{name}-colorls.csh
Patch0:  %{name}-%{version}-aix-uname.patch
Patch1:  %{name}-%{version}-aix-configure.patch

BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root

BuildRequires: gettext, gmp-devel >= 4.3.2
BuildRequires: gcc >= 4.2.3-2
BuildRequires: make

Requires: /sbin/install-info
Requires: info, gettext, gmp >= 4.3.2

Conflicts: mktemp, coreutils-64bit

Provides: fileutils = %{version}-%{release}
Provides: sh-utils = %{version}-%{release}
Provides: stat = %{version}-%{release}
Provides: textutils = %{version}-%{release}
Obsoletes: fileutils <= 4.1.9
Obsoletes: sh-utils <= 2.0.12
Obsoletes: stat <= 3.3
Obsoletes: textutils <= 2.0.21


%description
These are the GNU core utilities.  This package is the combination of
the old GNU fileutils, sh-utils, and textutils packages.

These tools are the GNU versions of common useful and popular file and text
utilities which are used for:
- file management
- shell scripts
- modifying text file (spliting, joining, comparing, modifying, ...)

Most of these programs have significant advantages over their Unix
counterparts, such as greater speed, additional options, and fewer arbitrary
limits.


%prep
%setup -q
%patch0
%patch1


%build
# required if you run 'configure' as root user
export FORCE_UNSAFE_CONFIGURE=1

export CC="gcc -pthread -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGE_FILES"
export CFLAGS="-DSYSV -D_AIX -D_AIX32 -D_AIX41 -D_AIX43 -D_AIX51 -D_ALL_SOURCE -DFUNCPROTO=15 -O -I/opt/freeware/include"
./configure \
    --prefix=%{_prefix} \
    --mandir=%{_mandir} \
    --infodir=%{_infodir} \
    --enable-largefile \
    --enable-nls
gmake %{?_smp_mflags}
gmake


%install
[ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT}
gmake DESTDIR=${RPM_BUILD_ROOT} install

bzip2 -9f ChangeLog

(
  cd ${RPM_BUILD_ROOT}
  /usr/bin/strip .%{_bindir}/* || :
  gzip --best .%{_infodir}/*info*

  mkdir -p usr/linux/bin
  mkdir -p usr/bin
  cd usr/linux/bin
  ln -sf ../../..%{_bindir}/* .
  cd ../../bin
  for i in dir dircolors vdir tac md5sum pinky seq
  do
     rm ../linux/bin/$i
     ln -sf ../..%{_bindir}/$i .
  done
)

mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/profile.d
cp %{SOURCE2} ${RPM_BUILD_ROOT}%{_sysconfdir}/DIR_COLORS
cp %{SOURCE3} ${RPM_BUILD_ROOT}%{_sysconfdir}/DIR_COLORS.xterm
cp %{SOURCE4} ${RPM_BUILD_ROOT}%{_sysconfdir}/profile.d/colorls.sh
cp %{SOURCE5} ${RPM_BUILD_ROOT}%{_sysconfdir}/profile.d/colorls.csh
chmod 644 ${RPM_BUILD_ROOT}%{_sysconfdir}/DIR*
chmod 644 ${RPM_BUILD_ROOT}%{_sysconfdir}/profile.d/*


%pre
# We must deinstall these info files since they're merged in
# coreutils.info. else their postun'll be run too late
# and install-info will fail badly because of duplicates
for file in sh-utils textutils fileutils; do
    /sbin/install-info --delete %{_infodir}/$file.info.gz --dir=%{_infodir}/dir &> /dev/null || :
done


%preun
if [ $1 = 0 ]; then
    /sbin/install-info --delete %{_infodir}/%{name}.info.gz %{_infodir}/dir || :
fi


%post
/usr/bin/grep -v '(sh-utils)\|(fileutils)\|(textutils)' %{_infodir}/dir > \
  %{_infodir}/dir.rpmmodify || exit 0
    /bin/mv -f %{_infodir}/dir.rpmmodify %{_infodir}/dir
/sbin/install-info %{_infodir}/%{name}.info.gz %{_infodir}/dir || :


%clean
[ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT}


%files
%defattr(-,root,system,-)
%doc COPYING ABOUT-NLS ChangeLog.bz2 NEWS README THANKS TODO old/*
%config(noreplace) %{_sysconfdir}/DIR_COLORS*
%{_sysconfdir}/profile.d/*
%{_bindir}/*
%{_infodir}/coreutils*
# exclude %{_libdir}/charset.alias as it conflicts with glib2
# %{_libdir}/*
%{_mandir}/man?/*
%{_datadir}/locale/*/*/*
/usr/bin/*
/usr/linux/bin/*

答え1

デフォルトでは、_LARGE_FILESが定義されていることを確認する必要があります。

# export CFLAGS="-O3 -D_LARGE_FILES"

これは-OXオプションです。 -O3をデフォルトとして使用する場合はgccを、デフォルトとして-O2を使用するにはxlcをお勧めします。

または、私のラッパー(最小coreutils-8.25)を試してみることもできます。

ps私はperzlのウェブサイトを確認しました。彼は現在8.25もパッケージ化しています。パッケージング方法の主な違いは、パッケージマネージャとしてinstallpを使用し、/opt/bin代わりに使用することです/opt/freeware/bin。つまり、並列にインストールして管理しやすいものを決定できます。 - 注:ここではルールがわからないので(まだ)私の「aixtools」にURLを追加しません。興味があれば、Twitter @rootvgnetで私の興味を持ってください。


大きすぎてコメントできません。 - 追加 - マイパッケージを使用することを選択した場合のインストール手順

インストールコマンド:-as root-#installp -d /some/dir -agX aixtools.gnu.coreutilsは、次のような出力に情報ブロックを表示する必要があります。

SUCCESSES
---------
  Filesets listed in this section passed pre-installation verification
  and will be installed.

  Selected Filesets
  -----------------
  aixtools.gnu.coreutils.rte 8.25.0.0         # built 22-Aug-2016 1702 UTC

  Requisites
  ----------
  (being installed automatically;  required by filesets listed above)
  aixtools.gnu.gettext.rte 0.19.8.1           # built 21-Aug-2016 1821 UTC
  aixtools.gnu.gettext.share 0.19.8.1         # universal files
  aixtools.gnu.libiconv.rte 1.14.0.4          # built 21-Aug-2016 1623 UTC
  aixtools.gnu.libiconv.share 1.14.0.4        # universal files

これは、coreutilsに加えて、テキスト国際化のためのgnu依存関係「gettext」とGNU iconvも必要であることを意味します。 coreutils は、AIX iconv が複数の翻訳を実装する方法を許可していないためです。

そのウィキ(パッケージは時間の経過とともに更新される可能性があります)リンクは次のとおりです。http://www.aixtools.net/index.php/coreutils -http://www.aixtools.net/index.php/gettext -http://www.aixtools.net/index.php/libiconv

つまり、3つのinstallpファイルを(例:/tmp/aixtools)にダウンロードした後

# installp -d /tmp/aixtools -agX aixtools.gnu.coreutils

これにより、各コンポーネントの「share」コンポーネントと「rte」コンポーネント、およびcoreutilsのマニュアルページもインストールされます。

マニュアルページが不要な場合は、以下を使用してください。

# installp -u aixtools.gnu.aixtools.man

削除

関連情報