내가 원하는 프로그램을 찾다 보면 바이너리(binary) rpm이 없이 소스(source) rpm만 있는 경우가 있습니다.
주로 최신 프로그램인 경우가 많은데 바이너리 rpm이 나오기 전에 소스 rpm이 나오는게 통상적인 순서입니다.

소스 rpm이라고 해서 특별한 것은 아니고 단지 컴파일 과정을 한번 더 거쳐 바이너리 rpm을 만들게 됩니다.
만들어진 바이너리 rpm을 다시 수세에 설치해야 프로그램 설치가 끝나게 됩니다.

조금 복잡한 과정을 거치게 되지만 자신의 컴퓨터에 최적화된 rpm을 만들 수 있는 장점도 있습니다.


SuperKaramba를 예로 들어 설치해 보겠습니다.
http://rpm.pbone.net/ 에서 검색을 해 보면 수세용 소스 rpm을 다운받을 수 있습니다.

우선 콘솔을 열어 관리자 모드로 로그인합니다.

> su
password:******

#

이제 소스 rpm을 컴파일 합니다.

# rpmbuild --clean --rebuild superkaramba-0.39-2.guru.suse102.src.rpm

혹시 의존성이 걸려 있다면 필요한 패키지가 출력되면서 컴파일이 중단됩니다.
이 경우 필요한 패키지를 다운받아 설치한 후 다시 컴파일 해 주어야 합니다.

컴파일이 성공하면 /usr/src/packages/RPMS 에 자신의 머신에 맞는 폴더에 바이너리 rpm이 생성됩니다.

보통 i586이나 i686 디렉토리에 생성됩니다.


특정 플렛폼에 맞는 rpm을 만들고 싶다면 --target <PLATFORM> 옵션을 추가하면 됩니다.
<PLATFORM>은 i386, i486, i586, i686, athlon, noarch 중 하나를 선택하면 됩니다.

athlon은 64비트 컴파일시 사용됩니다.
AMD의 최초의 x86용 64비트 CPU의 코드명입니다. 

noarch는 플렛폼에 무관한 rpm을 생성합니다.
noarch는 주로 데이타 rpm에 사용되며 실행프로그램이라면 ix86이나 athlon을 선택하면 됩니다.

예를 들어 SuperKaramba를 486용으로 컴파일하고 싶다면 다음과 같이 표현할 수 있습니다.

# rpmbuild --clean --rebuild --target i486 superkaramba-0.39-2.guru.suse102.src.rpm

그러면 /usr/src/packages/RPMS/i486 디렉토리에 바이너리 rpm이 생성됩니다.


주의할 점은 자신의 머신과 같거나 아래의 플렛폼으로 컴파일 해야 사용할 수 있다는 겁니다.
자신의 머신이 무엇인지 알고 싶다면 다음을 이용하시면 됩니다.

# uname -m
i686


이렇게 생성된 바이너리 rpm은 다른 rpm과 똑같이 YaST를 이용해 바로 설치할 수 있습니다.

자 따끈따끈한 소스 rpm이 아직도 많으니 도전해 보세요 !!!


출처 - http://www.suse.or.kr/bbs/board.php?bo_table=tip&wr_id=2034&page=7



'System > Linux' 카테고리의 다른 글

debian/ubuntu - iptables 저장 및 restore  (0) 2012.09.01
linux - iptables 설정  (0) 2012.09.01
linux - multitail  (0) 2012.08.23
linux - tar를 이용한 대용량 파일 이동  (2) 2012.08.06
linux - bash  (0) 2012.07.24
Posted by linuxism
,

linux - multitail

System/Linux 2012. 8. 23. 13:18


tail 명령어는 하나의 로그파일만 분석 할수 있는 반면 multitail 은 한번에 여러개의 로그를 분석 할수 있는 툴입니다. 
multitail
은 아래 주소에서 다운로드 받을수 있으나 기본적으로 패키지 서버에 등록이 되어 있습니다.

http://www.vanheusden.com/multitail/

CentOS – (RPMForge – CentOS 5.4 기준)

[root@ruo91 ~]# wget
http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.i386.rpm

[root@ruo91 ~]# rpm -Uvh
rpmforge-release-0.5.1-1.el5.rf.i386.rpm

[root@ruo91 ~]# yum install -y multitail

Ubuntu

root@ruo91 ~:# apt-get update ; apt-get install -y
multitail

Gentoo

ruo91 ~ # emerge –search multitail
Searching…
[
Results for search key : multitail ]
[ Applications found : 1 ]

*
app-text/multitail
      Latest version available: 5.2.2
     
Latest version installed: [ Not Installed ]
      Size of files: 160
kB
      Homepage:     
http://www.vanheusden.com/multitail/index.html
      Description:  
Tail with multiple windows.
      License:       GPL-2

ruo91 ~ # emerge multitail

FreeBSD

[root@yongbok
~]# cd /usr/ports ; make search key=multitail
Port:  
multitail-5.2.2
Path:   /usr/ports/sysutils/multitail
Info:   Tail
multiple files on console with ncurses
Maint:  beat@FreeBSD.org
B-deps:
gettext-0.17_1 gmake-3.81_3 libiconv-1.13.1
R-deps:
WWW:   
http://www.vanheusden.com/multitail/

[root@yongbok ~]# cd /usr/ports/sysutils/multitail ;
make install clean

사용 예제
1. 2개의 로그 파일을 하나의 화면에 통합하여 보기

[root@yongbok ~]# multitail /var/log/access.log -I /var/log/error.log

사용자 삽입 이미지
2. 3개의 화면을 만들고 왼쪽엔 1개, 오른쪽엔 2개의 로그 보기

[root@yongbok ~]# multitail -s 2 /var/log/apache/access.log /var/log/messages /var/log/mail.log

사용자 삽입 이미지
3. 2개의 화면을 만들고 왼쪽엔 1개, 오른쪽엔 3개의 로그를 보기

[root@yongbok ~]# multitail -s 2 -sn 1,3  /var/log/access.log -I /var/log/error.log /var/log/messages /var/log/mail.log

사용자 삽입 이미지
4. 매 1초마다 상단에는 연결 성립(ESTABLISHED)이 된것을 보여주고 하단에는 웹서버 접근 로그 보기

[root@yongbok ~]# multitail -R 1 -l “netstat -t|grep ESTABLISHED” /home/apache2-log/www/www-access-2010-03-20.log

사용자 삽입 이미지
5. 로그 파일 내용을 녹색으로 보기

[root@yongbok ~]# multitail -ci green /home/apache2-log/www/www-access-2010-03-20.log

사용자 삽입 이미지
그 외 예제들은 아래 주소 참고하시면 되겠습니다.
http://www.vanheusden.com/multitail/examples.html


출처 - http://www.yongbok.net/blog/?p=111


'System > Linux' 카테고리의 다른 글

linux - iptables 설정  (0) 2012.09.01
linux - 소스(source) rpm 설치  (0) 2012.08.23
linux - tar를 이용한 대용량 파일 이동  (2) 2012.08.06
linux - bash  (0) 2012.07.24
linux - 환경변수  (0) 2012.07.17
Posted by linuxism
,


컴퓨터에 저장되어 있는 "환경변수(Environment Variable)"를 구하는 방법입니다. 다음의 첫번째 예제는, PATH 라는 환경변수의 값을 구하는 것이고, 두번째 예제는, 모든 환경변수의 목록을 출력하는 것입니다.


자바로, 특정 환경 변수의 값 구하기 예제


파일명: Foo.java
public class Foo {
  public static void main(String[] args) {

    String s = System.getenv("PATH");

    System.out.println(s);

  }
}


해당하는 환경변수가 없으면 getenv()가, null 을 반환합니다.
윈도우에서는 대소문자가 무시되지만, 유닉스/리눅스에서는 환경변수명의 대소문자를 구분합니다.



시스템에 저장된 모든 환경변수 목록 얻기 예제


파일명: Foo.java
import java.util.Map;

public class Foo {
  public static void main(String[] args) {

    for (Map.Entry entry: System.getenv().entrySet())
      System.out.println( entry.getKey() + "=" + entry.getValue() );

  }
}



윈도우XP, 비스타, 리눅스 환경변수도 되나요?


위의 자바 소스로 윈도XP, 비스타, 리눅스, 유닉스 환경변수도 다룰 수 있습니다. 어떤 운영체제(OS)든 환경변수 체계는 동일합니다.


출처 - http://mwultong.blogspot.com/2007/01/java-os-get-print-environment-variable.html





Posted by linuxism
,