>> Edit article
이름
제목
패스워드
오랫만에 이곳에 글을 올려보네요..... [배경(?)] 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@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