/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
削除