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

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

		오랫만에 이곳에 글을 올려보네요.....
 [배경(?)]
 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-----------------------------
이름
암호
  목록보기 윗글 아랫글
글쓰기
답장쓰기 수정 삭제
정규표현식 [ 상세 검색 ]
페이지로딩: [ 0.53 초 ] 작업시간: [ 0.07 초 ]

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

적수네 동네
+
| 적수네 동네
| 공부방
| 리눅스 잡지 서고
| LSN 소스
| 링크 모음
+---+
게시판
+
| 떠들어보세!
| 질문과 답변
| 새소식과 정보
| 1원짜리 팁?
| 대화방
+---+
칼럼?
+
| 세하 훔쳐보기
| Welcome2nite
| 혜진의 염장판
+---+
리눅스 상표권
+
| 반대 서명란
| 토론 게시판
+---+
GNU
+
| GNU 선언문
| GNU GPL
| GNU 미러 목록
+---+
프로젝트?
+
| 리눅스카운터
| RC5DES
| 실질헌법 제작
+---+
커널 소식
+
| 안정 버젼: 2.4.14
+---+
테마 선택
+
LSN 방송국?
+
| OFF AIR
+---+
회원
+
| 로그인
+---+
[ 적수네 동네 ] [ 리눅스 상표권 독점 반대 ] [ 한글 리눅스 문서 프로젝트 ] [ KrLine ] [ 사랑넷 ] [ Valid HTML 4.0! ] [ SlashDot ] [ Freshmeat ]
Copyleft (C) 1998-2001 Byeong-Chan Kim . License
TIME: 1791053347
System by WYZsoft, HDD by I.O.Linux, Mizi Research, Embryo, WOWLINUX, Domain by SarangNet, Network by KrLine.