1 개념[ | ]
- ScanCode
- NexB에서 제공하는 오픈소스 Source Code Scan Tool
- NexB (https://www.nexb.com/)
- NexB사에서 제공하는 String Search 기반 오픈소스 분석 Tool
- 소스 코드 내 라이선스, Copyright, 저작권자 관련 정보들을 확인하여 분석
- 소스 코드 내 프로그램을 설치하여 분석 후 JSON,HTML 등의 포멧으로 결과를 Export 할 수 있음
- 타 프로그램에 비해 툴 설치 방법이 편리하며, 분석 결과를 Web 형태으로도 확인이 가능함
2 동작 방식[ | ]
- 동작 원리
- 코드 파일 유형을 분류하여 저장공간에 수집함
- 추출기를 사용하여 아카이브에서 파일을 추출함
- 필요한 경우 바이너리 파일에서 텍스트를 추출함
- 확장 가능한 규칙을 사용하여 Open Source 라이선스 문구를 탐지함
- 특수 구문 분석기를 사용하여 Copyright 내용을 수집함
- 패키지 코드를 확인하고 패키지 내에서 meta data를 수집함
- 다른 도구와의 통합을 위해 JSON 또는 HTML로 결과물을 출력함
- 분석 업무 지원을 위해 HTML 브라우저를 통해 결과를 표시함
- 라이선스 검색
- ScanCode는 검색 인덱스에서 컴파일 된 다수의 라이선스 텍스트와 라이선스 검색 Rule을 사용하여 분석함
- 검사 시 대사 파일의 텍스트가 추출되어 라이선스 검색 색인을 쿼리한 결과를 통해 라이선스 일치 여부 확인함
- Copyright 검색
- ScanCode는 Copyright 텍스트를 제품의 '구문 분석' 기능을 통해 추출함.
3 설치 요구사항[ | ]
- Hardware
- Modern X86 processor and at least 2GB of RAM and 250MB of disk.
- Supported operating systems
- Linux: on most recent 64-bit Linux distributions (32-bit distros are only partially supported).
- Mac: on recent Mac OSX (10.6.8 and up).
- Windows: on Windows 7 and up (32- or 64-bit) using a 32-bit Python.
- Prerequisites
- ScanCode needs a Python 2.7 interpreter.
4 설치 및 삭제[ | ]
- 설치
- 최신 Tool 다운로드 (https://github.com/nexB/scancode-toolkit/releases)
- 분석할 소스코드 Root 폴더에 Tool 압축 풀기
- Tool 수행
리눅스 및 맥OS
Console
Copy
[root@zetawiki ~]# ./scancode
윈도우
Console
Copy
D:\> scancode
- 삭제
- 압축이 풀린 폴더 삭제