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)를 사용해 볼 수도 있습니다.

p.s. 방금 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

삭제해

관련 정보