Nexus アプリケーション開発:Yocto

Yocto について

Cisco NX-OS リリース 10.1(1) ソフトウェアは、Yocto 2.6 に基づいています。Yocto 2.6 をダウンロードし、構築する新しいソフトウェアをダウンロードし、ソフトウェアを構築して、スイッチにソフトウェアをインストールすることで、より多くのアプリケーションをインストールできます。

Yocto のインストール

次の例では、Ubuntu 16.04 仮想マシンで Ruby バージョン 2.2.2 をビルドします。

手順


ステップ 1

Ubuntu 16.04 仮想マシンにすべての必須パッケージをインストールします。

sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat cpio python python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping libsdl1.2-dev xterm

ステップ 2

Yocto 2.6 をダウンロードします。

wget http://downloads.yoctoproject.org/releases/yocto/yocto-2.6/poky-thud-20.0.0.tar.bz2
tar xjfv poky-thud-20.0.0.tar.bz2
cd poky-thud-20.0.0

ステップ 3

oe-init-build-env ファイルを取得します。

source oe-init-build-env

ステップ 4

テキスト エディタを使用して conf/local.conf を編集し、次の行を追加します。

MACHINE = "genericx86-64"
DEFAULTTUNE  = "x86-64"

ステップ 5

次のコマンドを入力します。

bitbake ruby

ビルドが完了すると、RPM は tmp/deploy/rpm/x86_64/*.rpm に生成されています。

ステップ 6

RPM をスイッチにコピーします。

Switch# copy scp://<username>@<IP_address>/ruby-2.2.2-r0.x86_64.rpm  bootflash: vrf management use-kstack
Switch# copy scp://<username>@<IP_address>/libyaml-0-2-0.1.6-r0.x86_64.rpm  bootflash: vrf management use-kstack

ステップ 7

Bash シェルから、次のコマンドを入力します。

インストール プロセスのある時点で求められたら、y を入力します。

bash-4.3# dnf install /bootflash/libyaml-0-2-0.1.6-r0.x86_64.rpm 
Loaded plugins: downloadonly, importpubkey, localrpmDB, patchaction, patching, protect-packages
groups-repo                           | 1.1 kB     00:00 ... 
localdb                               |  951 B     00:00 ... 
patching                              |  951 B     00:00 ... 
thirdparty                            |  951 B     00:00 ... 
Setting up Install Process
Examining /bootflash/libyaml-0-2-0.1.6-r0.x86_64.rpm: libyaml-0-2-0.1.6-r0.x86_64
Marking /bootflash/libyaml-0-2-0.1.6-r0.x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package libyaml-0-2.x86_64 0:0.1.6-r0 will be installed
--> Finished Dependency Resolution
 
Dependencies Resolved
 
===========================================================================================
 Package          Arch             Version         Repository                        Size
===========================================================================================
Installing:
 libyaml-0-2      x86_64           0.1.6-r0        /libyaml-0-2-0.1.6-r0.x86_64      119 k
 
Transaction Summary
===========================================================================================
Install       1 Package
 
Total size: 119 k
Installed size: 119 k
Is this ok [y/N]: y
Downloading Packages:
Running Transaction Check
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : libyaml-0-2-0.1.6-r0.x86_64                                    1/1 
/sbin/ldconfig: /usr/lib/libboost_regex.so.1.49.0 is not a symbolic link
 
 
Installed:
  libyaml-0-2-0.1.6-r0.x86_64
         
 
Complete!
Install operation 2450 completed successfully at Fri Jul 27 18:54:55 2018.
 
[####################] 100%

ステップ 8

次のコマンドは、Ubuntu 16.04 仮想マシンで Ruby バージョン 2.2.2 をビルドする例を示しています。

インストール プロセスのある時点で求められたら、y を入力します。

bash-4.3# dnf install /bootflash/ruby-2.2.2-r0.x86_64.rpm 
Loaded plugins: downloadonly, importpubkey, localrpmDB, patchaction, patching, protect-packages
groups-repo                           | 1.1 kB     00:00 ... 
localdb                               |  951 B     00:00 ... 
patching                              |  951 B     00:00 ... 
thirdparty                            |  951 B     00:00 ... 
thirdparty/primary                    | 1.8 kB     00:00 ... 
thirdparty                                 2/2
Setting up Install Process
Examining /bootflash/ruby-2.2.2-r0.x86_64.rpm: ruby-2.2.2-r0.x86_64
Marking /bootflash/ruby-2.2.2-r0.x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package ruby.x86_64 0:2.2.2-r0 will be installed
--> Finished Dependency Resolution
 
Dependencies Resolved
 
===========================================================================================
 Package          Arch             Version         Repository                        Size
===========================================================================================
Installing:
 ruby             x86_64           2.2.2-r0        /ruby-2.2.2-r0.x86_64             32 M
 
Transaction Summary
===========================================================================================
Install       1 Package
 
Total size: 32 M
Installed size: 32 M
Is this ok [y/N]: y
Downloading Packages:
Running Transaction Check
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : ruby-2.2.2-r0.x86_64                                 1/1 
/sbin/ldconfig: /usr/lib/libboost_regex.so.1.49.0 is not a symbolic link
 
 
Installed:
  ruby.x86_64 0:2.2.2-r0                                  
 
Complete!
Install operation 2451 completed successfully at Fri Jul 27 18:55:23 2018.
 
[####################] 100%