Termux

2019年1月 6日 (日)

nodeのcanvasでのエラー(Canvas is not a constructor)解消方法


nodeのcanvasでのエラー(Canvas is not a constructor)解消方法

1.概要
nodeでcanvasを動かそうとして、テストとしてネットに流れているサンプルを実行したところ「Canvas is not a constructor」のエラーで動作しなかった。動いた実績のあるサンプルと推測できるのでインストールの問題と思って色々やったが動作しなかった。エラーメッセージを頼りにネット検索したら参照URLに辿り着いた。
そこにあるようにサンプルのソースを変更したら動作した。どこかでcanvasの仕様が変更になり今まで動いていたプログラムが動作しなくなっていたらしい。

2.ソース修正方法
参照URLの内容のとおりだが以下のような変更をする。

new Canvas.createCanvas

Canvas.createCanvas

new Canvas();

Canvas.createCanvas();

#つまりnewを使用しないようにする。

3.本家のサンプルを動作させる
復習を兼ねてインストールから動作完了までを記載する:

git clone https://github.com/Automattic/node-canvas.git
cp -a node-canvas/examples samples
cd samples

sudo apt-get install libcairo2-dev
npm install canvas

別のディレクトリにコピーしたので動かしたいjsを以下のように修正する(例):

var Canvas = require('..')

var Canvas = require('canvas')

img('examples/images/squid.png')

img('./images/squid.png')

img('examples/images/squid.png')

img('./images/squid.png')

#言うまでもないが、本家サンプルは、もともとエラーは出ないので、それに対する修正はない。

4.参照URL
https://github.com/Automattic/node-canvas/issues/997
Canvas is not a constructor

以上

| | コメント (0) | トラックバック (0)

2018年12月 1日 (土)

Termux-ubuntu Unixbench


Termux-ubuntu Unixbench

0.概要
Termux-unbuntuで、P20 lite, Freetel Rei, MD-03Pのunixbenchを行なった。

1.install&run
mkdir unixbench
cd unixbench
git clone https://github.com/kdlucas/byte-unixbench.git .
cd UnixBench
./Run

2.result(System Benchmarks Index Score)
P20 Lite(ANE-LX2J): 398.3
#(8 CPUs in system; running 8 parallel copies of tests)
Freetel Rei(FTJ161B): 269.8
#(3 CPUs in system; running 3 parallel copies of tests)
MD-03P: 175.9
#(2 CPUs in system; running 2 parallel copies of tests)
-----
Raspi3: 472(比較用)
RaspiZeroWH: 115(比較用)

注釈:
FTJ161Bは、8CPUだが、UnixBenchでは3CPUと誤認識?されているようだ。
MD-03Pは、4CPUだが、UnixBenchでは2CPUと誤認識?されているようだ。
両方(FTJ161B,MD-03P)ともSoCとしては、同じmt6735の8CPU版と4CPU版のようだ。
ANE-LX2JのSoCはhi6250で8CPUになる。

3.その他のベンチマークの結果
3.1.AnTuuTu Benchmark v7.1.1
P20 Lite(ANE-LX2J): 86503
Freetel Rei(FTJ161B): 41296
MD-03P: 39758

3.2.AnTuuTu HTML5 Test
P20 Lite(ANE-LX2J): 21066
Freetel Rei(FTJ161B): 17031
MD-03P: 18913

3.reference
・https://qiita.com/CloudRemix/items/f82e22b3727a88520cc3
CentOS7でUnixBenchする方法(16コア以上対応)
・http://intothevoid.hatenablog.com/entry/20160417/1460904307
UnixBenchでいろいろベンチマーク(さくらVPS、raspberry pi 3、ローカルPC)
・https://mongonta.blog.fc2.com/blog-entry-353.html
ラズパイとネットブックとスティックPCの速さを比較してみました。

以上

| | コメント (0) | トラックバック (0)

2018年11月17日 (土)

prootでubuntuを動かす

prootでubuntuを動かす

1.概要
参考URLにあるTermux(Android)でubuntuを動かすスクリプトを流用して
PC-linuxでprootを利用してubuntuを動かしてみる。

注意:prootは最新版である必要がある。
実際には以下のバージョンで動作確認した:
proot --version
_____ _____ ___
| __ \ __ \_____ _____| |_
| __/ / _ \/ _ \ _|
|__| |__|__\_____/\_____/\____| 5.1.0

built-in accelerators: process_vm = yes, seccomp_filter = no

Visit http://proot.me for help, bug reports, suggestions, patchs, ...
Copyright (C) 2014 STMicroelectronics, licensed under GPL v2 or later.

2.変更したスクリプト
x86ubuntuX86-gen.sh
---------------------------
#!/usr/bin/bash
### #!/data/data/com.termux/files/usr/bin/bash
folder=ubuntuX86-fs
#folder=ubuntuARM64-fs
if [ -d "$folder" ]; then
first=1
echo "skipping downloading"
fi
tarball="ubuntu.tar.gz"
if [ "$first" != 1 ];then
if [ ! -f $tarball ]; then
echo "downloading ubuntu-image"
case `dpkg --print-architecture` in
aarch64)
archurl="arm64" ;;
arm)
archurl="armhf" ;;
amd64)
archurl="amd64" ;;
i*86)
archurl="i386" ;;
x86_64)
archurl="amd64" ;;
*)
echo "unknown architecture"; exit 1 ;;
esac
#archurl="arm64"
wget "https://partner-images.canonical.com/core/bionic/current/ubuntu-bionic-core-cloudimg-${archurl}-root.tar.gz" -O $tarball
fi
cur=`pwd`
mkdir -p "$folder"
cd "$folder"
echo "decompressing ubuntu image"
proot tar -xf ${cur}/${tarball} --exclude='dev'||:
### proot --link2symlink tar -xf ${cur}/${tarball} --exclude='dev'||:
echo "fixing nameserver, otherwise it can't connect to the internet"
echo "nameserver 1.1.1.1" > etc/resolv.conf
cd "$cur"
fi
mkdir -p binds
bin=start-ubuntu.sh
#bin=startARM64-ubuntu.sh
echo "writing launch script"
cat > $bin <<- EOM
#!/bin/bash
cd \$(dirname \$0)
## unset LD_PRELOAD in case termux-exec is installed
###unset LD_PRELOAD
command="proot"
###command+=" --link2symlink"
command+=" -0"
command+=" -r $folder"
if [ -n "\$(ls -A binds)" ]; then
for f in binds/* ;do
. \$f
done
fi
command+=" -b /dev"
command+=" -b /proc"
## uncomment the following line to have access to the home directory of termux
#command+=" -b /data/data/com.termux/files/home:/root"
## uncomment the following line to mount /sdcard directly to /
#command+=" -b /sdcard"
command+=" -w /root"
command+=" /usr/bin/env -i"
command+=" HOME=/root"
command+=" PATH=/usr/local/sbin:/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/games:/usr/local/games"
command+=" TERM=\$TERM"
command+=" LANG=C.UTF-8"
command+=" /bin/bash --login"
com="\$@"
if [ -z "\$1" ];then
exec \$command
else
\$command -c "\$com"
fi
EOM

###echo "fixing shebang of $bin"
###termux-fix-shebang $bin
echo "making $bin executable"
chmod +x $bin
echo "You can now launch Ubuntu with the ./${bin} script"
---------------------------

3.ubuntuのfs作成
上のスクリプトを実行する:
bash x86ubuntuX86-gen.sh

実行後、以下のディレクトリとスクリプトが作成される:
ubuntuX86-fs
start-ubuntu.sh

4.ubuntu実行
以下を実行する:
./start-ubuntu.sh

実行例:
./start-ubuntu.sh
#以下のようなエラーが表示されるが動作はしている
/usr/bin/groups: cannot find name for group ID 108
/usr/bin/groups: cannot find name for group ID 124
/usr/bin/groups: cannot find name for group ID 1000

pwd
/root

uname -m
x86_64

id
uid=0(root) gid=0(root) groups=0(root),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),108,124,1000

apt-get update
apt-get upgrade

apt-get install nano

which nano
/bin/nano

5.ダウンロード
上のスクリプトは以下のリンクからダウンロードできる:
「x86ubuntux86gen.sh.txt」をダウンロード
# 誤操作でスクリプトを動作することを避けるためにtxtにしてある

7.エラー
同様のスクリプトでAMR系のubuntuを動作させようとしたが
以下のようなエラーで動作しなかった。
proot info: pid 15654: terminated with signal 11

# prootのバグか設定の問題かは不明。


8.参考URL
https://wiki.termux.com/wiki/Ubuntu
Ubuntu - Termux Wiki
https://github.com/Neo-Oli/termux-ubuntu/blob/master/ubuntu.sh

以上

| | コメント (0) | トラックバック (0)

2018年11月11日 (日)

Termux-Ubuntu Trouble Shoot#1(groups: cannot find name for group ID xxxxx)


Termux-Ubuntu Trouble Shoot#1(groups: cannot find name for group ID xxxxx)

1.現象
ubuntuに入るときに以下のエラーメッセージが出る:
groups: cannot find name for group ID 3003
groups: cannot find name for group ID 9997
groups: cannot find name for group ID 50111

2.解決方法
擬似rootで/etc/bash.bashrcを以下のように一部をコメントアウトする;

nano /etc/bash.bashrc

以下、コメントアウトする部分:
========================================
# sudo hint
##if [ ! -e "$HOME/.sudo_as_admin_successful" ] && [ ! -e "$HOME/.hushlogin" ] ; then
## case " $(groups) " in *\ admin\ *|*\ sudo\ *)
## if [ -x /usr/bin/sudo ]; then
## cat <<-EOF
## To run a command as administrator (user "root"), use "sudo ".
## See "man sudo_root" for details.
##
## EOF
## fi
## esac
##fi
========================================

3.参考URL
https://askubuntu.com/questions/463349/groups-cannot-find-name-for-group-id
groups: cannot find name for group ID #########

以上

| | コメント (0) | トラックバック (0)

LinuxBrew install memo

LinuxBrew install memo

0.概要
LinuxBrewはMacOS環境でのインストールソフトHomebrewのLinux版になる。
特長としては、root権限が不要(=sudoが不要)で、$HOME以下にインストールできるので、
実験的なソフトをインストールしても、その影響が全体に及ばないことがある。
それに加えてインストール方法をMacOSとある程度統一できる。
以下は、PC(64bits x86)のubuntuとARMのubuntu(=Termux-ubuntu)でのインストール方法についてのメモである。

1.ubuntu(64bits x86)
#以下のコマンドを実行してインストールする

sudo apt-get install build-essential curl file git
sudo apt-get install python-setuptools ruby wget
sudo apt-get autoremove

#実験的にインストールするなら専用のアカウントを作ることを勧める
sudo adduser USERNAME
sudo login USERNAME

# 再インストールの場合、いったん消去する
rm -rf ~/.linuxbrew

git clone https://github.com/Linuxbrew/brew.git ~/.linuxbrew

# 第1回目は以下を実行し、次のログインのため.bashrcに以下を追加する:
PATH="$HOME/.linuxbrew/bin:$PATH"
export MANPATH="$(brew --prefix)/share/man:$MANPATH"
export INFOPATH="$(brew --prefix)/share/info:$INFOPATH"
export PATH="$HOME/.linuxbrew/sbin:$PATH"

# brewのインストール状態をチェックする
brew doctor
# 「You should ...」の形で助言が表示されるので必要があれば、その助言に従う。
brew doctor
# 再度、実行して問題が解決していることを確認する

brew update
brew upgrade

# (ネットワークを遅くしている可能性がある?ので)
# brewの情報収集を止める
brew analytics off
# 確認
brew analytics
Analytics is disabled.
# または、以下を.bashrcに入れても良い
#export HOMEBREW_NO_ANALYTICS=1

# チェック用インストール
brew install hello

# インストール例
brew install vim
brew install neovim
brew install ecl
brew install emacs
brew install python@2

# install状況を表示する
brew# list
# 以下、出力例:
autogen gettext libmpc luarocks python
...


2.Android(termux-ubuntu)
#以下を実行してインストールする

# 次のようなエラーが出ているので以下を実行して解消する
# bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
apt-get install locales
locale-gen en_US.UTF-8
update-locale en_US.UTF-8
locale-gen ja_JP.UTF-8
update-locale ja_JP.UTF-8

apt-get install nano
apt-get install git libssl-dev libreadline6-dev libyaml-dev libgdbm-dev libdb-dev curl

apt-get install ruby
ruby --version
ruby 2.5.1p57 (2018-03-29 revision 63029) [aarch64-linux-gnu]

#擬似rootではエラーになるのでアカウントを作る
adduser USERNAME
login USERNAME

# 再インストールの場合、いったん消去する
rm -rf ~/.linuxbrew

git clone https://github.com/Linuxbrew/brew.git ~/.linuxbrew

#第1回目は以下を実行し、再ログインのために.bashrcに以下を追加する:
PATH="$HOME/.linuxbrew/bin:$PATH"
export MANPATH="$(brew --prefix)/share/man:$MANPATH"
export INFOPATH="$(brew --prefix)/share/info:$INFOPATH"

mkdir -p ~/.cache/Homebrew
cd ~/.cache/Homebrew
wget https://github.com/Homebrew/homebrew-portable-ruby/releases/download/2.3.7/portable-ruby-2.3.7.armv6_linux.bottle.tar.gz

cd ~/.linuxbrew/Library/Homebrew/vendor
tar -zxvf ~/.cache/Homebrew/portable-ruby-2.3.7.armv6_linux.bottle.tar.gz

cd portable-ruby
ln -sf 2.3.7 current

ln -sf /usr/bin/ruby $HOME/.linuxbrew/Library/Homebrew/vendor/portable-ruby/current/bin/ruby

cd ~/
brew update --force
brew upgrade

# brewのインストール状態をチェックする
brew doctor
# 問題があれば[You should ...」の表示でアドバイスしてくれるので、それに従う
brew doctor
# 再度、実行して問題が解決していることを確認する

# (ネットワークを遅くしている可能性がある?ので)
# brewの情報収集を止める
brew analytics off
# 確認
brew analytics
Analytics is disabled.
# または、以下を.bashrcに入れても良い
#export HOMEBREW_NO_ANALYTICS=1

 
# 以下、テスト用インストール
brew install hello

# 以下、インストール例
brew install emacs
brew install ecl


3.参考URL
http://linuxbrew.sh/
Linuxbrew(The Homebrew package manager for Linux)
https://qiita.com/z80oolong/items/61feb20a9356532a15da
Linuxbrew の自動的なインストールスクリプトが異常終了する場合における代替の導入手法
https://qiita.com/aktsh/items/18f0cfdabfce3b750ff5
【CLI】Mac, Windows, Linuxでパッケージマネージャを統一できた【Homebrew】

以上

| | コメント (0) | トラックバック (0)

2018年11月10日 (土)

Termux Ubuntu/Debian Install memo


Termux Ubuntu/Debian Install memo

0.概要
Termux-Ubuntu/Debianについて、まとめた。
Ubuntuのほうは、参考URLのとおりでインストールできたが、Debianのほうは、そのままではインストールできず、以下の方法でインストールした。

1.Termux-Ubuntu

pkg install wget proot
mkdir -p ~/jails/ubuntu
cd ~/jails/ubuntu
wget https://raw.githubusercontent.com/Neo-Oli/termux-ubuntu/master/ubuntu.shls
bash ubuntu.sh

./start-ubuntu

cat /etc/lsb-release
apt-get install tzdata
#dpkg-reconfigure tzdata

apt-get install net-tools
apt-get install wget git
apt-get install build-essential

2.Termux-Debian

mkdir jails
cd jails
mkdir debian
cd debian

pkg install debootstrap proot wget

# Check your architecture with:
uname -m
aarch64

debootstrap --arch=arm64 stable stable http://ftp.debian.org/debian/
# ARCH is arm64 for aarch64, etc.

# uname-m が以下の場合:
#x86_64
#sudo debootstrap --arch=amd64 stable stable http://ftp.debian.org/debian/

mkdir binds

nano start-debian.sh
# 以下のスクリプトを、start-debian.shとして作成する:
<-------------------------------------------------------
#!/data/data/com.termux/files/usr/bin/bash
cd $(dirname $0)
## unset LD_PRELOAD in case termux-exec is installed
unset LD_PRELOAD
command="proot"
command+=" --link2symlink"
command+=" -0"
command+=" -r stable"
if [ -n "$(ls -A binds)" ]; then
for f in binds/* ;do
. $f
done
fi
command+=" -b /dev"
command+=" -b /proc"
## uncomment the following line to have access to the home directory of termux
#command+=" -b /data/data/com.termux/files/home:/root"
## uncomment the following line to mount /sdcard directly to /
#command+=" -b /sdcard"
command+=" -w /root"
command+=" /usr/bin/env -i"
command+=" HOME=/root"
command+=" PATH=/usr/local/sbin:/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/games:/usr/local/games"
command+=" TERM=$TERM"
command+=" LANG=C.UTF-8"
command+=" /bin/bash --login"
com="$@"
if [ -z "$1" ];then
exec $command
else
$command -c "$com"
fi
>-------------------------------------------------------

chmod a+x start-debian.sh
./start-debian.sh

# 以下からDebianを動作する

apt-get update
apt-get upgrade

cat /etc/lsb-release
apt-get install tzdata
#dpkg-reconfigure tzdata

apt-get install net-tools
apt-get install wget git
apt-get install build-essential

# 以下、任意のものをインストールする:
apt-get install pulseaudio
apt-get install xorg gnome vnc4server
vnc4server

3.参考URL
https://wiki.termux.com/wiki/Debian
Debian
https://wiki.termux.com/wiki/Ubuntu
Ubuntu

以上

| | コメント (0) | トラックバック (0)