지풍@blog

지풍@blog RSS

RHEL 5.x 이나 CentOS 5.x에서 perl 스크립트를 실행하면 아래와 같이 오류를 내면서 실행 안 되는 경우가 있습니다

Can't locate IO/Pty.pm in @INC (@INC contains: /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/5.8.8 .) at /usr/lib/perl5/site_perl/5.8.8/Expect.pm line 22.


IO/Pty.pm을 찾을 수 없다라는 오류인데 RHEL 5.x이나 CentOS 5.x에서는 yum으로 해당 패키지를 설치할 수 없어 보이더군요

그래서 따로 구해서 설치를 해줘야 하는데 아래 주소에서 다운 받아 설치 할 수 있습니다

http://pkgs.repoforge.org/perl-IO-Tty

RHEL 5.x이나 CentOS 5.x는 여기서 직접 다운로드 됩니다

http://pkgs.repoforge.org/perl-IO-Tty/perl-IO-Tty-1.08-2.el5.rf.i386.rpm (32bit)

참고로 rpm으로 저 주소를 직접 넣어 설치는 불가능한 것 같습니다

wget으로 먼저 다운을 받고 rpm으로 설치를 해야 제대로 되더군요
tftp 서버가 CentOS나 RHEL에서는 기본으로 설치되지 않아 별도로 설치해야 하죠

yum으로 간단히 설치 할 수 있는데 아래와 같이 설치 할 수 있습니다

# yum update tftp-server

Loaded plugins: downloadonly, fastestmirror

Loading mirror speeds from cached hostfile

 * base: data.nicehosting.co.kr

 * extras: data.nicehosting.co.kr

 * updates: data.nicehosting.co.kr

addons                                                   |  951 B     00:00

base                                                     | 1.1 kB     00:00

extras                                                   | 2.1 kB     00:00

updates                                                  | 1.9 kB     00:00

Setting up Update Process

Package(s) tftp-server available, but not installed.

No Packages marked for Update

[root@w03 ~]# yum install tftp-server

Loaded plugins: downloadonly, fastestmirror

Loading mirror speeds from cached hostfile

 * base: data.nicehosting.co.kr

 * extras: data.nicehosting.co.kr

 * updates: data.nicehosting.co.kr

Setting up Install Process

Resolving Dependencies

--> Running transaction check

---> Package tftp-server.x86_64 0:0.49-2.el5.centos set to be updated

--> Finished Dependency Resolution


Dependencies Resolved


================================================================================

 Package            Arch          Version                     Repository   Size

================================================================================

Installing:

 tftp-server        x86_64        0.49-2.el5.centos           base         32 k


Transaction Summary

================================================================================

Install      1 Package(s)

Update       0 Package(s)

Remove       0 Package(s)


Total download size: 32 k

Is this ok [y/N]: y

Downloading Packages:

tftp-server-0.49-2.el5.centos.x86_64.rpm                 |  32 kB     00:27

Running rpm_check_debug

Running Transaction Test

Finished Transaction Test

Transaction Test Succeeded

Running Transaction

  Installing     : tftp-server                                              1/1


Installed:

  tftp-server.x86_64 0:0.49-2.el5.centos


Complete!


위와 같이 yum으로 간단히 설치할 수 있고 rpm 명령어로 아래와 같이 설치 되었는지 확인할 수 있죠

# rpm -qa | grep tftp

tftp-server-0.49-2.el5.centos


이제 제대로 실행이 되는지 확인해야 하는데 설치가 되면 기본적으로 tftp 서버가 실행되어 있지도 않고 설정상 내려져 있죠

tftp 서버가 올라 가도록 설정을 해야 하는데 /etc/xinetd.d/tftp 파일을 열어 disable = yes를 disable = no로 바꿔 줘야 합니다

# default: off

# description: The tftp server serves files using the trivial file transfer \

#       protocol.  The tftp protocol is often used to boot diskless \

#       workstations, download configuration files to network-aware printers, \

#       and to start the installation process for some operating systems.

service tftp

{

        socket_type             = dgram

        protocol                = udp

        wait                    = yes

        user                    = root

        server                  = /usr/sbin/in.tftpd

        server_args             = -s /tftpboot

        disable                 = yes -> no

        per_source              = 11

        cps                     = 100 2

        flags                   = IPv4

}


그리고 tftp 서버가 xinetd에 속하기 때문에 xinetd를 재가동하면 tftp 서버가 실행이 될껍니다

# service xinetd restart

Stopping xinetd:                                           [  OK  ]

Starting xinetd:                                           [  OK  ]


xinetd가 재가동 되면 아래와 같이 제대로 tftp 서버가 실행이 되었는지 알 수가 있습니다

# netstat -a | grep tftp

udp        0      0 *:tftp                      *:*  


CentOS 5.x에서 yum으로 git가 설치가 안 되는 것 같더군요

CentOS 5.x 기본 패키지에 git가 포함이 안 되어서 yum으로 설치가 안 되는 것 같고

CentOS 6.x부터는 기본 패키지에 포함되어 있는 것 같아서 간단히 yum으로 설치가 될 것 같습니다

일단 git를 설치하기 위해 필요한 패키지들을 먼저 yum으로 설치 해 줍니다

# yum install zlib-devel

# yum install openssl-devel

# yum install perl

# yum install cpio

# yum install expat-devel

# yum install gettext-devel
# yum install curl 

 
필요한 패키지를 다 받았으면 git를 wget으로 다운 받고 설치합니다

# wget http://www.codemonkey.org.uk/projects/git-snapshots/git/git-latest.tar.gz

# tar xzvf git-latest.tar.gz

# cd git-{date}

# autoconf

# ./configure --with-curl=/usr/local

# make

# make install


위와 같은 과정을 거치면 git를 CentOS 5.x에서 사용 가능합니다

CentOS 5.x에서 가능하기 때문에 자연스레 RHEL 5.x에서도 가능하답니다

출처 : http://angry-fly.com/2009/03/installing-git-on-centos-5/
 

TAG : CentOS, git, RHEL, yum
레드헷 계열(RHEL, fedora, CentOS 등등...)에서 yum으로 쉽게 패키지 관리를 할 수 있죠

보통 설치와 업데이트를 yum으로 하는데 거기에 yum으로 관리하는 패키지의 RPM을 다운 받을 수 있답니다

yum으로 RPM을 다운 받기 위해서는 yum-downloadonly이란 패키지를 yum으로 설치 해야 합니다

# yum search yumdownloader

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

 * base: mirror.khlug.org

 * extras: mirror.khlug.org

 * updates: mirror.khlug.org

============================ Matched: yumdownloader ============================

yum-utils.noarch : Utilities based around the yum package manager

# yum install yum-downloadonly

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

 * base: centos.ustc.edu.cn

 * extras: centos.ustc.edu.cn

 * updates: centos.ustc.edu.cn

Setting up Install Process

Resolving Dependencies

--> Running transaction check

---> Package yum-downloadonly.noarch 0:1.1.16-16.el5.centos set to be updated

--> Finished Dependency Resolution


Dependencies Resolved


================================================================================

 Package               Arch        Version                      Repository

                                                                           Size

================================================================================

Installing:

 yum-downloadonly      noarch      1.1.16-16.el5.centos         base       12 k


Transaction Summary

================================================================================

Install      1 Package(s)

Update       0 Package(s)

Remove       0 Package(s)


Total download size: 12 k

Is this ok [y/N]: y

Downloading Packages:

yum-downloadonly-1.1.16-16.el5.centos.noarch.rpm         |  12 kB     00:00

warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID e8562897

base/gpgkey                                              | 1.5 kB     00:00

Importing GPG key 0xE8562897 "CentOS-5 Key (CentOS 5 Official Signing Key) <centos-5-key@centos.org>" from /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

Is this ok [y/N]: y

Running rpm_check_debug

Running Transaction Test

Finished Transaction Test

Transaction Test Succeeded

Running Transaction

  Installing     : yum-downloadonly                                         1/1


Installed:

  yum-downloadonly.noarch 0:1.1.16-16.el5.centos


Complete!


yum-downloadonly 패키지가 설치가 되면 그 때부터 yum으로 RPM을 다운 받을 수 있습니다

# yum install <패키지 이름> --downloadonly --downloaddir=<다운 받을 위치>


예를 들어 OpenIPMI 같은 경우는 아래와 같습니다

# yum install OpenIPMI --downloadonly --downloaddir=/root

Loaded plugins: downloadonly, fastestmirror

Loading mirror speeds from cached hostfile

 * base: centos.mirror.cdnetworks.com

 * extras: centos.mirror.cdnetworks.com

 * updates: mirror.khlug.org

Setting up Install Process

Resolving Dependencies

--> Running transaction check

---> Package OpenIPMI.x86_64 0:2.0.16-11.el5_7.2 set to be updated

--> Processing Dependency: OpenIPMI-libs = 2.0.16-11.el5_7.2 for package: OpenIPMI

--> Running transaction check

---> Package OpenIPMI-libs.x86_64 0:2.0.16-11.el5_7.2 set to be updated

--> Finished Dependency Resolution


Dependencies Resolved


================================================================================

 Package             Arch         Version                   Repository     Size

================================================================================

Updating:

 OpenIPMI            x86_64       2.0.16-11.el5_7.2         updates       162 k

Updating for dependencies:

 OpenIPMI-libs       x86_64       2.0.16-11.el5_7.2         updates       571 k


Transaction Summary

================================================================================

Install      0 Package(s)

Update       2 Package(s)

Remove       0 Package(s)


Total download size: 733 k

Is this ok [y/N]: y

Downloading Packages:

(1/2): OpenIPMI-2.0.16-11.el5_7.2.x86_64.rpm             | 162 kB     00:00

(2/2): OpenIPMI-libs-2.0.16-11.el5_7.2.x86_64.rpm        | 571 kB     00:02

--------------------------------------------------------------------------------

Total                                           196 kB/s | 733 kB     00:03



exiting because --downloadonly specified

mantis에서 파일 업로드 할 때 최대 크기가 분명 5메가라고 나와 있는데 4메가 정도 파일을 업로드 할 경우 APPLICATION ERROR #401 이라는 오류가 뜰 때가 있습니다

이럴 때는 php와 mysql의 설정 문제 때문에 발생하는 것 같더군요

php나 mysql의 초기 설정이 작은 파일만 업로드 하도록 되어 있어서 이런 문제가 발생하는 것 같더군요

php 설정(/etc/php.ini)은 아래 항목을 수정하면 됩니다

file_uploads = On
upload_max_filesize = <업로드 파일 용량>M
post_max_size = <업로드 파일 용량>M
max_execution_time = <업로드 시 대기 시간, 초>


그리고 mysql 설정(/etc/my.cnf)는 아래 항목을 수정하면 됩니다

max_allowed_packet = <업로드 파일 용량>M


그리고 mysqld와 httpd를 재시작하면 그런 오류가 없어질 껍니다
 
리눅스 상에서 svn의 변경된 파일 목록을 조회하는 방법입니다

svn diff -r<조회하고 싶은 시작 revision>:<조회하고 싶은 끝 revision> --summarize | sort | awk '{print $NF}'


실제로 이렇게 쓸 수 있죠

svn diff -r50:60 --summarize | sort | awk '{print $NF}'



 

TAG : svn
rpm으로 heartbeat를 설치하다가 아래와 같이 오류 메시지를 내면서 설치가 안 되더군요

# rpm -Uvh ftp://ftp.sayclub.com/pub/linux/centos/5.6/extras/x86_64/RPMS/heartbeat-pils-2.1.3-3.el5.centos.x86_64.rpm

Retrieving ftp://ftp.sayclub.com/pub/linux/centos/5.6/extras/x86_64/RPMS/heartbeat-pils-2.1.3-3.el5.centos.x86_64.rpm

Preparing...                ########################################### [100%]

        installing package heartbeat-pils-2.1.3-3.el5.centos.x86_64 needs 244KB on the / filesystem


오류가 발생한 이유는 root filesystem에 남은 공간이 없어서 발생하더군요

root filesystem을 정리하고 다시 시도하면 오류 없이 설치 가능할 겁니다 
아래 명령처럼 특정 파일의 절대경로을 포함한 파일이름을 써주게 되면

그 파일이 어떤 RPM에 포함되어 있는지 알아 낼 수 있답니다

# rpm -qf /bin/ls

coreutils-5.97-23.el5_6.4 


출처 : http://sinun.tistory.com/84
log4cpp를 컴파일 하다 보면 아래와 같이 BasicLayout.cpp에서 오류가 날 때가 있습니다

BasicLayout.cpp:37: error: expected constructor, destructor, or type conversion

before ‘<’ token

 
 이럴 때는 아래와 같이 2군데에 수정을 해주면 컴파일이 되네요

BasicLayout.cpp:17

#include <memory> 추가 

PatternLayout.cpp:373

component = new FormatModifierComponent(component, std::abs((float)minWidth), maxWidth, minWidth < 0); 변경 

 
출처 : http://bugs.gentoo.org/217755 
log4c를 크로스컴파일 하다 보니... 아래와 같은 오류가 중간에 뜨더군요...

../../src/log4c/.libs/liblog4c.so: undefined reference to `rpl_malloc'

../../src/log4c/.libs/liblog4c.so: undefined reference to `rpl_realloc'


보통의 configure에서 위 오류를 잡아줘야 하는데 이상하게 log4c에서는 못 잡아 주더군요
(덧으로 log4c에서는 expat이 없다고 오류를 내 뱉지도 않더라구요ㅠㅠ)

뭐 하여튼 아래와 같이 같이 해주면 오류를 잡고 make까지 갈 수 있답니다

첫번째 방법은 환경변수로 추가 하는 방법
(http://sunnmoon.egloos.com/2348814에서 참고 했습니다)

undefined reference to `rpl_malloc' 오류의 경우


$ export ac_cv_func_malloc_0_nonnull=yes


undefined reference to `rpl_realloc' 오류의 경우


$ export ac_cv_func_realloc_0_nonnull=yes


두번째 방법은 configue의 파라메타로 넣어 주는 방법입니다
(제가 썼던 방법이죠)

./configure ac_cv_func_malloc_0_nonnull=yes ac_cv_func_realloc_0_nonnull=yes




 
1 2 3 4 
분류 전체보기 (201)
내가 사는 이야기 (1)
백과사전 (89)
듣고 보는 것 (0)
세상 이야기 (1)
맛집 투어 & 여행 (0)
컴퓨터 이야기 (110)
게임 이야기 (0)
위시리스트 (0)
스포츠 이야기 (0)
영화 이야기 (0)
우하하하하 (0)