この記事で取り扱う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 - オープンソースをオープンソースで管理しよう (2.設定編 その1)
OSS管理ツール SW360 - オープンソースをオープンソースで管理しよう (3.設定編 その2)
まず、(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'
$ sudo apt install git
$ git config --global http.proxy http://proxy:port
$ git config --global https.proxy http://proxy:port
$ sudo apt install maven
$ mkdir ~/.m2
$ vi ~/.m2/settings.xml
・Maven の Proxy設定
<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
以下の画面が表示される
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ファイルがある。
SW360スタート
$ cd liferay-portal-6.2-ce-ga5/tomcat-7.0.62/bin
$ ./catalina start
Firefoxが自動で開き、以下のLiferayの画面が表示される。
名前、サンプルデータが必要かどうか、Liferayの情報を管理するデータベースの設定を行い、Finish Cofiguration
このとき http://127.0.0.1:5984/_utils/
で以下のようにSW360関連のテーブルができていたらOK
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"
$ sudo apt install git
$ git config --global http.proxy http://proxy:port
$ git config --global https.proxy http://proxy:port
$ sudo apt install curl
$ 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
$ 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 BoxとVagrantの最新版のインストールを行う。
また、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をインストール
$ 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画面が表示されるが、パスワード設定後は同じ画面が表示される。)
Docker(sw360chore)やVagrant で作成した場合は以下でログイン
Email : setup@sw360.org
password : sw360fossy
ログイン後画面右上にAdminが表示されればOK
[Control Panel]から[Password Policies]を選択
Default Password Policy -> Action -> Edit 選択
次に Control Panel から [Configuration]に移動
ここからSW360の権限設定
Control Panel -> Configuration -> Users(on the right) -> Default User Associations
[Apply to Existing Users]にチェックを付けて Sitesの中に SW360 を記入
これらを保存
アカウント作成権限を[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?]以外は全てチェックを外すことにする。
larファイル((Liferay Archive) file)のインポートは右上[Admin]->[Pages]から行う
larfileはgithubからダウンロードするかダウンロードしたsw360のフォルダ内の[sw360/frontend/configuration]から選択する。
[Public Pages] と [Private Pages]があるので、それぞれに対応するファイルを[Import]からインポートする。
Update Data -> Mirror with overwriting
Authorship of the Content -> Use the Current User as Author を選択してインポート開始
F5キーなどでページを更新して、コンテンツが含まれていることを確認して[save]
すべてうまくいけば以下のページが表示されることが確認でき、インストールは終了となる
- ユーザの設定を行わないと一部見れない画面があります。ユーザ設定は設定編にて記載しています。この設定をしないとComponent画面などを開くことができません。
以下 追記 (2019/05/23)
#謝辞
@ambai 様、 @teppeitherock 様には 様々な役立つ情報を提供して頂きました。
この場を借りてお礼申し上げます。
この記事のフィードバックやコメント等はいつでもお待ちしております。気軽にお申し付けください。