>> Delete No. 1325 article
No. [쉘]CD의 RPMS (Un)Install List 작성

등록 2001-06-01 00:42:00     조회 4
이름 산이    

		오랫만에 이곳에 글을 올려보네요.....
 [배경(?)]
 http://kltp.kldp.org/stories.php?story=01/05/27/9537108 의 [정종덕]님의 TIP을 보고 나니 예전 생각이 아
주 절실하더군요.  그래서 한번 어거지(실력이 바닥이라서)로 만들어 보았습니다.
 "인수 길이가 너무 김" : Arguments too long
에러메시지가 한글로 출력되다보니 한참을 생각했어야해던
기억도 나네요...(MySQL DB에 넣을때)
 한마디로 고전(?) 했음.
(쉘스크립트가 형편없더라도 너그러이 이해해 주시길....)
...
 아래 내용 외에도
http://www.rpmfind.net 에서도 파일을 찾아볼 수 있습니다..
  [목적]
  RPM 파일에 대해서,
 특정 파일이 어느 위치에 설치되고 또한 이 파일은
 어느 패키지에 속하는지를 알아봄.
 이런 작업을 위해서 CD를 또다시 마운트해야하는 불편함을
 제거,
 여러개의 배포본 CD를 DB화함.
 [개요]
 CD의 RPMS 파일을 이용해서
  - RPMS list 작성 : Local DISK에 생성
 - RPMS 찾기 : 작성한 Local DISK에서 검색
 - MySQL DB에 넣는
 쉘스크립트입니다.
  - 쉘 소스코드 (내용이 많아서 이곳에 포스팅이 힘드네요)
  http://ftp.linuxchannel.net/devel/rpmlist/rpmf-sh.txt  - 사용법 및 주의 사항
  http://ftp.linuxchannel.net/devel/rpmlist/README.txt  - MySQL DB에 넣은 게시판(JSboard 0.4)
  http://www.linuxchannel.net/board/?table=rpmlist  - Local DISK에서 검색하는 장면
  http://www.linuxchannel.net:8080/images/rpmlist.gif   -----------------------------------------
This file is README.txt
#########################################
##
## 스크립트명 : rpmlist(RPM (Un)Installed list 찾기)
##
## 작성자 : 김칠봉 <san2 at linuxchannel.net>
## 소 스 : http://www.linuxchannel.net/devel/ ## 작성일 : 1차 2001.05.29
##
## 라이센스 : GNU GPL (see "COPYING" file)
##
##
##########################################
 ##########################################
##                                      ##
## WARNING !!!                          ##
## 사용자의 사용상 부주의로 인한 피해는            ##
## 어떠한 경우라고 본인에게 그 책임이 없음을        ##
## 미리  공지합니다.                         ##
##                                      ##
##########################################
 [간략한 설명]
 이 스크립트는  RedHat 계열 Install CD의 RPMS 디렉토리를 기준으로,
각각의 RPM 파일에 대해서 설치될 경로를 파일로 만들고, 만든 파일을
대상으로 검색, 그리고 MySQL DB에 집어 넣을 수 있도록 만든 스크립트
입니다.
 MySQL DB에 넣은 게시판 :
http://www.linuxchannel.net/board/?table=rpmlist    0. 설치(?)
       http://www.linuxchannel.net/devel/ 싸이트를 참고해서
      "rpmf-sh.txt" 파일을 다운로드함.
      다운로드한 파일을 "rpmf"으로 파일명을 바꾸고 퍼미션은 최소한
      사용자에게 실행권한이 되도록 하고 적당한 $PATH에 복사하거나
      옮겨놓음.
       ex)
      # cp rpmf-sh.txt rpmf
      # chmod 700 rpmf
      # mv rpmf /usr/local/bin/
      #
      # rpmf
      Usage :
      /usr/local/bin/rpmf --makelist "/mnt/cdrom/RedHat/RPMS"
      /usr/local/bin/rpmf --find "filename or file pattern"
      /usr/local/bin/rpmf --insertdb "/var/rpmDBdir"
      DB is mysql !!!
      #
    1. rpmlist 파일 작성하기
       각 RPM 파일이 설치될 경로(rpm -qpl xxx.rpm)를 xxx-rpm.list 파일로 작성.
      (기본 디렉토리는 명령어를 내린 위치에서 "rpmDBdir" 이라는 디렉토리가
      생성되고 그곳에 *.list 파일이 생성됨.)
       ex)
      # mount /mnt/cdrom
      # which rpmf
      /usr/local/bin/rpmf
      # rpmf --makelist "/mnt/cdrom/RedHat/RPMS"
      ...
      ...
      # ls -d rpmDBdir
      rpmDBdir
      #
     (# mv rpmDBdir /var/)
    2. 파일 찾기
       작성된 list 파일을 대상으로 특정 패턴의 파일에 대해서 검색하여 그 결과로
      어떤 RPM 파일인지 화면에 출력함.
      (찾을 파일의 패턴은 정규표현식 가능.)
       ex)
      # ls -d rpmDBdir
      rpmDBdir
      #
      # rpmf --find "(rc.local|mkbootdisk)"
      ...xxx-xxx.rpm
      ...
      #
    3. 작성한 list 파일을 MySQL DB에 넣기
       우선 rpmf 파일을 편집기로 열어서 처음 부분의 설정을 수정함.
      (DB insert가 완료되면 db pass는 보안상 지우도록 함)
       mysql_dbname="board" ## DB 이름
      mysql_dbuser="board_user" ## DB 유저
      mysql_dbpass="xxxxxx" ## DB 암호
      mysql_table="rpmlist" ## Insert 할 테이블 이름
      name_value="san2" ## 글쓴이(?)
       (참고로 필자는 0.4 <="JSboard 버전" < 1.0 에서 테스트했음.)
       만약 테이블 구조가 num,name,title,text,date 의 Columns 이 없다면
      rpmf 파일에서 insert_db 함수의 내용을 수정함.
       mysqlcolumns="num,name,title,text,date"
       num = 일련의 게시판 출력 번호
      name = 글쓴이 이름
      title = 제목(여기에 RPM 파일 이름이 들어감)
      text = 본문내용(RPM 파일이 설치될 경로 list가 들어감)
      date = 등록날짜(Unix timestamp 값임.)
      ** 주의 **
     JSboard 1.x.x 에서는 테스트하지 못했음.
     ("idx" 라는 INDEX 가 있어서...)
      ex)
     # ls -d /var/rpmDBdir
     /var/rpmDBdir
     #
     # rpmf --insertdb "/var/rpmDBdir"
     ...
     ...(약 1-3 분정도 소요)
     ...
     #
      http://www.linuxchannel.net/board/?table=rpmlist       에서 볼 수 있습니다.
 END-----------------------------
[관리자] 패스워드를 입력 하십시오. 답장이 존재하면 함께 삭제됩니다.[ 목록 | 이전 ]
패스워드:    

Copyleft 1999-2026 by JSBoard Open Project
Theme Designed by IDOO All right reserved