会社のセキュリティポリシー等で社内ネットワークにArmadilloを接続することができない場合があるかと思います。その際にはArmadillo上でaptコマンドを使用することができずパッケージをインストールする方法に困ります。
そういった場合の解決策としてATDE上でDebianパッケージをダウンロードし、USBメモリ/SDカード等でArmadilloにコピーし、Armadilloにdebパッケージをインストールする方法を紹介します。
1. 環境
このブログでは以下の環境でdebパッケージをインストールしました。
項目 | 内容 |
---|---|
製品 | Armadillo-640 |
ATDE | ATDE7(※: インターネットへの接続ができる状態が必要) |
Armadillo用Debianルートファイルシステム | debian-stretch-armhf-a600-20190326.tar.gz |
インストールしたパッケージ | build-essential(※: 依存パッケージも含む) |
今回は上記のようにArmadillo-640を使用しましたが、Debianを使用する製品であれば、他の製品でもルートファイルシステムを変更することで対応可能です。
2. ATDE上の環境構築
まずはATDE上でdebパッケージをダウンロードする環境を構築します。
事前にATDE上にArmadillo用のDebianルートファイルシステムをダウンロードしておいてください。
以下のコマンドを実行し、Armadillo用のDebianルートファイルシステムをATDEに展開してください。
[atde ~]$ ls
debian-stretch-armhf-a600-20190326.tar.gz
[atde ~]$ mkdir debian-stretch-armhf-a600-20190326
[atde ~]$ sudo tar zxf debian-stretch-armhf-a600-20190326.tar.gz -C debian-stretch-armhf-a600-20190326/
3. qemuを使用してARM用のDebian環境に移行する
以下のコマンドを実行し、ARM用のDebian環境に移行してください。
[atde ~]$ sudo cp /usr/bin/qemu-arm-static debian-stretch-armhf-a600-20190326/usr/bin/
[atde ~]$ sudo chroot debian-stretch-armhf-a600-20190326/
4. ARM用Debian環境でdebパッケージをダウンロード
以下のコマンドを実行し、例として「build-essential」をダウンロードし、ダウンロードしたdebパッケージのアーカイブを作成してください。
[qemu-arm ~]# apt-get update
[qemu-arm ~]# apt-get install -y build-essential
[qemu-arm ~]# cd /var/cache/apt/archives
[qemu-arm ~]# sudo tar zcf /packages.tar.gz *.deb
[qemu-arm ~]# exit
[atde ~]# ls debian-stretch-armhf-a600-20190326/packages.tar.gz
debian-stretch-armhf-a600-20190326/packages.tar.gz
5. Armadilloでdebパッケージをインストール
前述の手順で作成した「packages.tar.gz」ファイルをUSBメモリやmicroSDカードを使用して、Armadilloにコピーしてください。
Armadillo上で以下のコマンドを実行し、パッケージをインストールしてください。
[armadillo ~]# ls
packages.tar.gz
[armadillo ~]# mkdir packages
[armadillo ~]# tar zxf packages.tar.gz -C packages
[armadillo ~]# cd packages
[armadillo ~]# apt-get install -y ./*.deb
6. build-essentialパッケージがインストールされていることを確認
以下のコマンドを実行し、「build-essential」パッケージがインストールされていることを確認してください。
[armadillo ~]# dpkg -l | grep build-essential
ii build-essential 12.3 armhf Informational list of build-essential packages