설치 방법
How to install FOSSology
FOSSology는 오픈소스로 공개되어 있기 때문에, 누구나 자체적으로 설치하여 운영할 수 있습니다. 아래의 설명이, 오픈소스 라이선스 스캔 도구가 필요하신 분들에게 도움이 되길 바라겠습니다.
How to install FOSSology
기업 내에서 FOSSology를 사용하기 위해서는 사내에 FOSSology 서버를 구축해야 합니다. 이를 위해 리눅스 기반의 서버 시스템에 FOSSology를 설치해야 합니다. FOSSology는 다음 세 가지 방법으로 설치할 수 있습니다.
Docker 사용
Vagrant와 VirtualBox 사용
Source build 하여 설치
먼저, 가장 간편한 방법인 Docker를 사용하는 방법에 대해 설명합니다.
Docker로 설치하기
FOSSology는 컨테이너화 된 Docker 이미지를 Docker Hub (https://hub.docker.com/)를 통해 공개하고 있습니다. : https://hub.docker.com/r/fossology/fossology
Pre-built 된 Docker 이미지는 다음 명령어를 사용하여 실행할 수 있습니다.
$ docker run -p 8081:80 fossology/fossology
Docker 이미지는 다음 URL과 계정 정보로 사용할 수 있습니다. : http://[IP_OF_DOCKER_HOST]:8081/repo
Username : fossy
Passwd : fossy
설치와 관련한 자세한 내용은 다음 페이지를 참고할 수 있습니다. : https://github.com/fossology/fossology/blob/master/README.md
Source Build 설치 on CentOS 7.6
여기서는 FOSSology를 CentOS 7.6에 설치하는 방법에 대해 설명하려고 합니다.
사실, FOSSology에서 제공하는 Docker image(https://hub.docker.com/r/fossology/fossology/)를 이용하는 것이 가장 간단합니다. 그런데, 자체적으로 서버를 운영하면서, Postgesql, PHP, Apache 등을 개별적으로 설치하면서 설정하는 게 필요할 수 있습니다.
FOSSology 소스 코드를 빌드하고, 이를 CentOS 7.6에 Deploy한 내용을 정리해보았습니다. (사용하시는 환경에 따라 정확히 동일하게 동작하지는 않을 수 있습니다.)
SELinux 해제
$ sudo vi /etc/sysconfig/selinux
...
SELINUX=disabled
$ sudo reboot
PHP 5.6 upgrade
// php version 확인
$ php -v
// install the Remi and EPEL repositories
$ sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
$ sudo rpm -Uvh https://rpms.remirepo.net/enterprise/remi-release-7.rpm
// Enable the Remi repository globally
$ sudo vi /etc/yum.repos.d/remi.repo
[remi]
...
enabled=1
[remi-php56]
...
enabled=1
// UPGRADE PHP 5.4 TO PHP 5.6
$ sudo yum -y upgrade php*
// 다시 version 확인
$ php -v
Get source code
$ wget https://github.com/fossology/fossology/archive/3.6.0.tar.gz
Install dependencies
// lsb package for centos7 설치
$ sudo yum install redhat-lsb
// composer 설치
$ sudo yum install composer
// dependencies 설치
$ tar xvfz 3.6.0.tar.gz
$ cd fossology-3.6.0
[fossology-3.6.0]$ sudo utils/fo-installdeps
Build source code
// Development Tools 설치
$ sudo yum groupinstall 'Development Tools'
// make
[fossology-3.6.0]$ make
Install FOSSology
// Install & log 저장
[fossology-3.6.0]$ sudo make install 2>&1 | tee install.log
Postgresql 설정
// initdb
$ sudo postgresql-setup initdb
// postgresql.conf 편집
$ sudo vi /var/lib/pgsql/data/postgresql.conf
...
listen_addresses = '*'
// pg_hba.conf 편집
$ sudo vi /var/lib/pgsql/data/pg_hba.conf
...
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
// 부팅 시 시작되도록 postgreasql enable
$ sudo systemctl enable postgresql
// postgreasql 시작
$ sudo systemctl start postgresql
Install 완료 후 추가 사항
// /var/log/fossology 생성
$ sudo mkdir /var/log/fossology
// Postinstall script 실행
$ sudo /usr/local/lib/fossology/fo-postinstall
PHP 설정
[fossology-3.6.0]$ sudo ./install/scripts/php-conf-fix.sh --overwrite
Apache 설정
// FOSSology가 설치되어 있는 경로 지정
$ sudo vi /etc/httpd/conf/httpd.conf
...
DocumentRoot "/usr/local/share/fossology/www/ui"
...
# Relax access to content within /var/www.
#
<Directory "/usr/local/share/fossology/www/ui">
...
# Further relax access to the default document root:
<Directory "/usr/local/share/fossology/www/ui">
// httpd restart
$ sudo systemctl restart httpd
설치 테스트
// Postgresql 접속 확인
$ sudo psql -d fossology -U fossy
// fossology scheduler 동작 확인
$ sudo /usr/local/etc/fossology/mods-enabled/scheduler/agent/fo_scheduler -t
FOSSology start
// 부팅 시 시작되도록 fossology enable
$ sudo systemctl enable fossology
// fossology 시작
$ sudo systemctl start fossology
Browser에서 접속 확인
http://[ip_address]
접속 실패 시 log 확인
// fossology log 확인
$ tail -f /var/log/fossology/fossology.log
// httpd log 확인
$ sudo tail -f /var/log/httpd/error_log
Last updated
Was this helpful?