LoginSignup
39
32

SBOM管理ツール SW360 - オープンソースをオープンソースで管理しよう (1.インストール編)

Last updated at Posted at 2019-03-19

この記事で取り扱うSW360のバージョンはとても古いです。以下を参照に最新のバージョンの導入をお勧めします。(2023年追記)
https://www.eclipse.org/sw360/docs/deployment/nativeinstall/

This article is written in Japanese and I am writing an English version now. If you can read English, you can check https://www.eclipse.org/sw360/docs/deployment/nativeinstall

If you have any questions in English, please send emails to sw360-dev@eclipse.org

This article is written in Japanese and I am writing English version now. This article describe only old sw360.
If you can read English, you can check https://github.com/eclipse/sw360/wiki#deployment-guides

以下で2019年9月時点での最新バージョンのインストール法を紹介しています
OSS管理ツール SW360 - オープンソースをオープンソースで管理しよう (1.1 新バージョンインストール編)

(注 2020/11/04) Version11 以降は以下を参照
https://qiita.com/K-Hama/items/1582b4e1bf248025eabb

  • 本記事はSW360のインストール方法紹介記事です

まず、(OSSである)SW360がいったい何であるかを記しておく。
SW360の GitHub では[A software component catalogue application - designed to work with FOSSology.]と表記されており、補足を加えて説明すると「ユーザとなる各企業がもつオープンソースの情報を社内で一括で管理するためのソフトウェアカタログツール」である。
https://github.com/eclipse/sw360

次にこのSW360のようなツールが必要になる背景を記す。

OSSの認知度が急速に広まり Qiita 上でも OSS の記事を 数多く見かけるようになった。
http://youwht.ml/tag_dendou/OSS
もちろんOSSを利用するメリットはここに書くまでもないが、場合によってはいくつかのデメリットがOSSの積極的な活用を妨げているかもしれない。例えば以下のデメリットが考えられる

  • OSSのライセンス情報の複雑性
  • OSSに潜む脆弱性
  • OSSの継続性が不明瞭

実際にOSSを利用して開発やサービスを行ってる企業や集団は上記の問題をFossologyなどのツールを利用し、非常に丁寧に(工数をかけて)調査・対処することで乗り切っている。しかし、さらにOSSの複雑性が今後増加するにつれてデメリットが深刻になるケースも生じてしまうのではないだろうか。

一方で、OSS分析を行うことを数年繰り返していると会社の中で作業の重複が生じる。

例えばAという部門がBというOSSのライセンスや脆弱性などの調査をした後にCという部門が全く同じBというOSSの調査を行う。(調査項目が完全に同じであるケースは少ないかもしれないが、ライセンス情報、脆弱性情報、輸出管理情報などは共通する調査項目ではなかろうか?)

事業の規模が大きくなるにつれてこのような重複作業が発生意図せず発生してしまう。今現在、多くの巨大企業がこの重複作業を避けるために一元化を試みている。そこでSW360といった情報ツールの有効性が増してくる。OpenChainProjectのJapanWorkigGroupでもしばしばSW360の名を耳にすることが増えた。本記事ではこのSW360のインストール方法を紹介したい。

なおSW360に関係する情報は以下も参考になる
https://wiki.eclipse.org/Google_Summer_of_Code_2019_Ideas#Eclipse_SW360
https://github.com/sw360/sw360slides
日本語資料は以下
https://github.com/sw360/sw360slides/raw/master/sw360slides-collection-JPN.pptx

なお、後日SW360の利用方法に関する記事も投稿予定である。

追記:以下で利用方法を記したドキュメントを公開
https://docs.google.com/document/d/1wNV--UhIDiRPP10Hhk0vspiKtoLupug7v2AAu4yxEC8/edit?usp=sharing

誰でも閲覧編集できるので,ご確認ください.

インストール方法

インストールには通常のネイテイブ環境へのインストールに加え、主にDocker、Vagrantを利用する方法がある。それぞれの手順をGithubを参考にしながら記していく。なおここではLinux(Ubuntu16.04以上推奨)上で作業を行うことを前提とする。WindowやMacでのインストールも可能であるが、当記事では省略する。また、インストール完了後のLiferay設定はどの方法でもおおむね共通するのでまとめて最後に記載する。各インストール方法で必要となるソフトウェアやツールは、すべていくつかのインストール方法がある。そこで、本記事では利用時に必要となりそうなコマンドをいくつかピックアップするにとどめる。また、Firefoxが導入されている前提とする。(*DockerとVagrantを利用する方法は環境によりうまくいかないことがあることを確認しているので、ひとまずネイティブインストールをお勧めする)

インストール

https://github.com/eclipse/sw360
上記を参照にリリース版のSW360(3.3.0-M1)のインストールを行う

事前準備

proxy環境下ではproxy設定を忘れずに

$ export http_proxy="http://proxy.example:port"
$ export https_proxy="http://proxy.example:port"
$ export no_proxy="localhost,127.0.0.1,noproxy_example"

ビルドに必要なものをインストール

・ Java 1.8.X (Javaインストール詳細は略)

$ sudo apt install openjdk-8-jdk
$ sudo apt install openjdk-8-jre-headless
$ export JAVA_OPT='-Dhttp.proxyHost=example.proxy -Dhttp.proxyPort=8080 -Dhttps.proxyHost=example.proxy -Dhttps.proxyPort=8080'

gitのインストール

$ sudo apt install git
$ git config --global http.proxy http://proxy:port
$ git config --global https.proxy http://proxy:port

Apache Maven 3.0.X インストール

$ sudo apt install maven
$ mkdir ~/.m2
$ vi ~/.m2/settings.xml

・Maven の Proxy設定

settings.xml
 <settings>
  <proxies>
    <proxy>
      <id>httpproxy</id>
      <active>true</active>
      <protocol>http</protocol>
      <host>proxy.example</host>
      <port>8080</port>
     <nonProxyHosts>localhost|127.0.0.1</nonProxyHosts>
  </proxy>
    <proxy>
      <id>httpsproxy</id>
      <active>true</active>
      <protocol>https</protocol>
      <host>proxy.example</host>
      <port>8080</port>
      <nonProxyHosts>localhost|127.0.0.1</nonProxyHosts>
    </proxy>
  </proxies>
 </settings>

CouchDBのインストール

CouchDB, at least 1.5(CouchDBは1.6.*, 1.7* でインストール推奨 (2.0.0以降は動作未確認))

CouchDBソース(version 1.7)からビルド

$ wget http://launchpadlibrarian.net/309343863/libmozjs185-1.0_1.8.5-1.0.0+dfsg-7_amd64.deb
$ wget http://launchpadlibrarian.net/309343864/libmozjs185-dev_1.8.5-1.0.0+dfsg-7_amd64.deb
$ sudo dpkg -i libmozjs185-1.0_1.8.5-1.0.0+dfsg-7_amd64.deb
$ sudo dpkg -i libmozjs185-dev_1.8.5-1.0.0+dfsg-7_amd64.deb
$ sudo apt install g++
$ sudo apt install erlang-base erlang-dev erlang-eunit erlang-nox
$ sudo apt install libicu-dev libcurl4-gnutls-dev libtool
$ sudo apt install libnspr4-dev libffi-dev
$ wget https://archive.apache.org/dist/couchdb/source/1.7.0/apache-couchdb-1.7.0.tar.gz
$ tar -xzvf ./apache-couchdb-1.7.0.tar.gz 
$ cd apache-couchdb-1.7.0
$ ./configure
$ make && sudo make install

インストール完了後、以下のようにコンソールに「リラックス」が表示されていたら成功。

You have installed Apache CouchDB, time to relax.
make[3]: Leaving directory '/home/PATH/apache-couchdb-1.7.0'
make[2]: Leaving directory '/home/PATH/apache-couchdb-1.7.0'
make[1]: Leaving directory '/home/PATH/apache-couchdb-1.7.0'

ユーザ権限を設定し、デーモンで起動できるようにする

$sudo adduser --system \
        --home /usr/local/var/lib/couchdb \
        --no-create-home \
        --shell /bin/bash \
        --group --gecos \
        "CouchDB Administrator" couchdb
$ sudo chown -R couchdb:couchdb /usr/local/etc/couchdb 
$ sudo chown -R couchdb:couchdb /usr/local/var/lib/couchdb
$ sudo chown -R couchdb:couchdb /usr/local/var/log/couchdb
$ sudo chown -R couchdb:couchdb /usr/local/var/run/couchdb
$ sudo chmod 0770 /usr/local/etc/couchdb
$ sudo chmod 0770 /usr/local/var/lib/couchdb
$ sudo chmod 0770 /usr/local/var/log/couchdb
$ sudo chmod 0770 /usr/local/var/run/couchdb
$ sudo cp /usr/local/etc/init.d/couchdb /etc/init.d/
$ sudo update-rc.d couchdb defaults
$ sudo systemctl start couchdb.service

上記がうまくいけば ブラウザから http://127.0.0.1:5984/_utils
以下の画面が表示される

CouchDB_install.png

Apache Thrift インストール

Apache Thrift 0.9.3 インストール
SW360以外にThriftを利用する場合はconfigureオプションを適宜変更する必要がある。
なお、最新のSW360を利用する場合はThrift 0.11.0をインストール

$ sudo apt install -y build-essential libboost-dev libboost-test-dev libboost-program-options-dev libevent-dev automake libtool flex bison pkg-config g++ libssl-dev
$ wget http://archive.apache.org/dist/thrift/0.9.3/thrift-0.9.3.tar.gz
$ tar -xzf thrift-0.9.3.tar.gz
$ cd thrift-0.9.3
$ ./configure --without-java --without-cpp --without-qt4 --without-c_glib --without-csharp --without-erlang \
                    --without-perl --without-php --without-php_extension --without-python --without-py3 --without-ruby \
                    --without-haskell --without-go --without-d --without-haskell --without-php --without-ruby \
                    --without-python --without-erlang --without-perl --without-c_sharp --without-d --without-php \
                    --without-go --without-lua --without-nodejs --without-cl
$ make
$ sudo make install

Liferay Portal とApache Tomcat のインストール

Liferay Portal CE 6.2 GA5 と Apache Tomcat 7.0.X or 8.0.X を ここから一括でダウンロード

解凍しliferay-portal-6.2-ce-ga5の中にDeployファイルを作成、PATHの設定

$ unzip liferay-portal-tomcat-6.2-ce-ga5.zip
$ cd liferay-portal-6.2-ce-ga5 
$ mkdir deploy 
$ export LIFRAY_PATH=/ABSOLUTE/PATH/TO/liferay-portal-6.2-ce-ga5 

SW360(3.3.0-M1)をネイティブインストール

$ git clone https://github.com/eclipse/sw360.git
$ cd sw360
$ git checkout  a3a0698
$ mvn clean
$ mvn install -Pdeploy -Ddeploy.dir=/ABSOLUTE/PATH/TO/liferay-portal-6.2-ce-ga5/deploy  -DskipTests

上記がうまくいけばliferay-portal-6.2-ce-ga5/deploy の中に warファイルがある。

deploy_end.png

SW360スタート

$ cd liferay-portal-6.2-ce-ga5/tomcat-7.0.62/bin
$ ./catalina start

Firefoxが自動で開き、以下のLiferayの画面が表示される。
名前、サンプルデータが必要かどうか、Liferayの情報を管理するデータベースの設定を行い、Finish Cofiguration

start_liferay.png

このとき http://127.0.0.1:5984/_utils/
で以下のようにSW360関連のテーブルができていたらOK

install_success_couchdb.png

Docker利用インストール

以下を参考記載
https://github.com/sw360/sw360chores

事前準備

git, curl, Docker(1.3以上), Docker-Composer(1.21以上)を必要に応じて設定。

最初にproxy環境下ではproxy設定を忘れずに

$ export http_proxy="http://proxy.example:port"
$ export https_proxy="http://proxy.examplr:port"
$ export no_proxy="localhost,127.0.0.1,noproxy_example"

gitのインストール

$ sudo apt install git
$ git config --global http.proxy http://proxy:port
$ git config --global https.proxy http://proxy:port

curlのインストール

$ sudo apt install curl

Dockerのインストール

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo apt-key fingerprint 0EBFCD88
$ sudo add-apt-repository  "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs)  stable"
$ sudo apt update
$ sudo apt install docker-ce

Docker-composeのインストール

$​​​​​​​​​​​​​​ sudo apt install python-pip
$ pip install virtualenv
$ sudo pip install -U  docker-compose

以下からsw360choresインストール&利用

まずは以下をクローンし、必要に応じてproxy.envを書き換え

$ git clone https://github.com/sw360/sw360chores.git
$ cd  sw360chore/configuration/
$ vi proxy.env

*注 以下のパスがずれているようなのでインストール前に修正

   sw360chores/docker-images/couchdb-lucene/prepare.sh

- L.24 if [[ -f $DIR/../../proxy.env ]]; then 
+ L.24 if [[ -f $DIR/../../configuration/proxy.env ]]; then 
- L.25 source $DIR/../../proxy.env
+ L.25 source $DIR/../../configuration/proxy.env
To get a fully configured [SW360](https://github.com/eclipse/sw360) running, 
you need to compile the wars and place them into `./_deploy`.
This can be done from within the SW360 project root with a single command via
$ mvn install -P deploy -Ddeploy.dir=/ABSOLUTE/PATH/TO/sw360chores/_deploy -DskipTests

と記載にあるので、ソースからビルドと同様に、sw360をクローンしてきてmvn installを行い
warファイルを/sw360chores/_deployの中に作成する。

インストール & buildは以下のコマンドで開始

$  ./sw360chores.pl --build -- up -d

*オプション確認は以下から

./sw360chores.pl --help

** コマンドの意味(./sw360chores.plから抜粋)

examples:

build and pull all Images, start the containers and detach:

./sw360chores.pl --build -- up -d

view and follow the logs of sw360 on a productive setup

./sw360chores.pl --prod -- logs -f sw360

build and save all images

./sw360chores.pl --build --save-images

上記が終わったら docker ps でイメージ確認

sw360test@sw360test:~/sw360chores$ docker ps
CONTAINER ID        IMAGE                  COMMAND                  CREATED              STATUS              PORTS                                            NAMES
56178da90112        sw360/sw360nginx       "/usr/local/bin/entr…"   59 seconds ago       Up 53 seconds       80/tcp, 0.0.0.0:8443->8443/tcp                   sw360_sw360nginx
79ece21761ce        sw360/sw360empty       "/usr/local/bin/entr…"   About a minute ago   Up 58 seconds       0.0.0.0:5005->5005/tcp, 0.0.0.0:8080->8080/tcp   sw360_sw360
d1fb1857f825        sw360/couchdb-lucene   "/usr/local/bin/entr…"   About a minute ago   Up About a minute   0.0.0.0:5985->5985/tcp                           sw360_sw360couchdb-lucene
a3d23db84f6d        sw360/sw360couchdb     "tini -- /docker-ent…"   2 minutes ago        Up About a minute   0.0.0.0:5984->5984/tcp                           sw360_sw360couchdb
8f21fddbda0e        postgres:9             "docker-entrypoint.s…"   2 minutes ago        Up About a minute   0.0.0.0:15432->5432/tcp                          sw360_sw360postgres

ブラウザで http://127.0.0.1:8080 
を開きLiferayで設定

Vagrant利用インストール

事前準備

まずはVirtual BoxVagrantの最新版のインストールを行う。

また、Dockerの場合と同様にproxy環境下ではproxy設定を忘れずに

$ export http_proxy="http://proxy.example:port"
$ export https_proxy="http://proxy.example:port"
$ export no_proxy="localhost,127.0.0.1,noproxy_example"

Vagrantのproxy設定(vagrant-proxyconf)

$ vagrant plugin install vagrant-proxyconf

こちらもGitをインストール

gitのインストール

$ sudo apt install git
$ git config --global http.proxy http://proxy:port
$ git config --global https.proxy http://proxy:port

次にsw360vagrantを取得

git clone https://github.com/sw360/sw360vagrant.git

こちらもproxy設定が必要な場合は [ /sw360/shared/configuration.rb ] 編集

$ vi shared/configuration.rb

Set this to "true" when working with a network behind a proxy
SW360_proxy=true
SW360_proxy_http="http://example:port"
SW360_proxy_https="https://example:port"
SW360_proxy_bypass="localhost,127.0.0.1"

SW360の構成に必要なファイルをダウンロード[]

$ cd sw360vagrant
$ ./download-packages.sh

ここでインストールされるもの

  • The Ubuntu cloud-image box xenial-server-cloudimg-amd64-vagrant.box
  • Apache Tomcat 7.0.67
  • Liferay 6.2.3-GA5
  • Couchdb-lucene 4.2.10

仮想環境上にSW360インストール

$ cd  sw360vagrant/generate-box
$ ./generate_box.sh

ブラウザで https://127.0.0.1:8443
を開いて、Liferayの設定

Install後のLiferay上での設定

https://github.com/eclipse/sw360/wiki/Deploy-Liferay
を参考に記載

最初に表示される画面でがアドレスとパスワードを入力
( Naitive installの場合はsetup画面が表示されるが、パスワード設定後は同じ画面が表示される。)

1.png

Docker(sw360chore)やVagrant で作成した場合は以下でログイン
Email : setup@sw360.org
password : sw360fossy

ログイン後画面右上にAdminが表示されればOK

2.png

Adminから[Control Panel]を選択
3.png

[Control Panel]から[Password Policies]を選択
4.png

Default Password Policy -> Action -> Edit 選択
5.png

Change Required のチェックを外す
6.png

チェックを外した後[save]で設定保存
7.png

次に Control Panel から [Configuration]に移動
8.png

ここからSW360の権限設定
Control Panel -> Configuration -> Users(on the right) -> Default User Associations
[Apply to Existing Users]にチェックを付けて Sitesの中に SW360 を記入
これらを保存

9.png

アカウント作成権限を[Authentication]から設定
Control Panel -> Configuration -> Users(on the right) -> Authentication

注:SW360のWikiでは以下のように記載されているが
・uncheck Allow strangers to create ... uncheck Allow strangers to verify ... save (on the right)
・Control Panel -> Authentication -> remove checkmarks for creating accounts by strangers save (on the right)

[uncheck Allow strangers to verify ... ][creating accounts by strangers ]といった項目はLiferay 6.2にはない。
そこで、下図のように[Allow users to automatically login?]以外は全てチェックを外すことにする。
10.png

larファイル((Liferay Archive) file)のインポートは右上[Admin]->[Pages]から行う
12.png

larfileはgithubからダウンロードするかダウンロードしたsw360のフォルダ内の[sw360/frontend/configuration]から選択する。

[Public Pages] と [Private Pages]があるので、それぞれに対応するファイルを[Import]からインポートする。
13.png
14.png

下図のようにCheckをつけて、Continueを実行
15.png

Update Data -> Mirror with overwriting
Authorship of the Content -> Use the Current User as Author を選択してインポート開始
17.png

Successfulが表示されたらOK
18.png

F5キーなどでページを更新して、コンテンツが含まれていることを確認して[save]
19.png

すべてうまくいけば以下のページが表示されることが確認でき、インストールは終了となる
SW360_public.png

sw360_private.png
  • ユーザの設定を行わないと一部見れない画面があります。ユーザ設定は設定編にて記載しています。この設定をしないとComponent画面などを開くことができません。

以下 追記 (2019/05/23)

#謝辞
@ambai 様、 @teppeitherock 様には 様々な役立つ情報を提供して頂きました。
この場を借りてお礼申し上げます。

この記事のフィードバックやコメント等はいつでもお待ちしております。気軽にお申し付けください。

39
32
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
39
32