2014年3月21日金曜日

FlexGetのインストール

FlexGetには、Pythonが必要。Pythonをビルド、インストールする。
Pythonをインストール後、PIPをインストールし、PIPからFlexGetをインストールする。

Pythonのビルド、インストール

クロスコンパイルするが、ホスト環境のpython, Parser/pgenをクロスコンパイルの中で使うので、最初にこれをビルドして、名前を変更しておく。
./configure
make python Parser/pgen
mv python hostpython
mv Parser/pgen Parser/hostpgen
make distclean
クロスコンパイルする。

CC=arm-none-linux-gnueabi-gcc CXX=arm-none-linux-gnueabi-g++ AR=arm-none-linux-gnueabi-ar RANLIB=arm-none-linux-gnueabi-ranlib ./configure --host=arm-none-linux-gnueabi --target=arm-none-linux-gnueabi --build=i686-none-linux-gnu

configure
CC=arm-none-linux-gnueabi-gcc CXX=arm-none-linux-gnueabi-g++ AR=arm-none-linux-gnueabi-ar RANLIB=arm-none-linux-gnueabi-ranlib CPPFLAGS="-I$sysroot/usr/local/include/ -I$sysroot/usr/include/" LDFLAGS="-L$sysroot/usr/local/lib/ -L$sysroot/usr/lib/ -L$sysroot/lib/" ./configure --host=arm-none-linux-gnueabi --target=arm-none-linux-gnueabi --build=i686-none-linux-gnu
make
make EXTRA_FLAGS="$CFLAGS" HOSTPYTHON=./hostpython HOSTPGEN=./Parser/hostpgen CROSS_COMPILE=arm-none-linux-gnueabi- CROSS_COMPILE_TARGET=yes BLDSHARED='arm-none-linux-gnueabi-gcc -shared'
chekcinstallで、パッケージ作成しようとしたがエラー。make installして、tarで固めて、ls-qlに持っていくことにする。
 checkinstall --install=no -A arm make install EXTRA_CFLAGS="$CFLAGS" HOSTPYTHON=./hostpython CROSS_COMPILE=arm-none-linxu-gnueabi- CROSS_COMPILE_TARGET=yes BLDSHARED='arm-none-linux-gnueabi-gcc -shared'
make install EXTRA_CFLAGS="$CFLAGS" HOSTPYTHON=./hostpython CROSS_COMPILE=arm-none-linxu-gnueabi- CROSS_COMPILE_TARGET=yes BLDSHARED='arm-none-linux-gnueabi-gcc -shared' prefix=~/ls-ql/Python-2.6.8/install
cd ~/ls-ql
tar zcvf Python-2.6.8.tar.gz Python-2.6.8
ls-qlにて、
tar zxvf Python-2.6.8.tar.gz
ln -s ${where tar extracted}/Python-2.6.8/instal/bin/python /usr/local/bin/python
ln -s ${where tar extracted}/Python-2.6.8/instal/lib/python2.6 /usr/local/lib/python2.6
Python-2.6.8/install/bin/python -V
Python-2.6.8/install/bin/python Python-2.6.8/install/lib/python2.6/test/test___all__.py

PIPのインストール

$ python ez_setup.py
$ python get-pip.py
pipが、Python-2.6.8/install/bin にインストールされるので、/usr/local/binにシンボリックリンクを作成する。
cd /usr/local/bin
ln -s {path to Python}/Python-2.6.8/install/bin/pip

Flexgetのインストール

$pip install flexget
スペース不足エラー。。。環境変数TEMPを設定して再実行。(http://flexget.com/wiki/InstallWizard/BuffaloLinkstation


隘路

  • ez_setup.pyを実行すると、curl でエラー。.curlrcを作る。
$ echo insecure >> ~/.curlrc
  • get-pip.pyを実行すると、bz2モジュールがないとのエラー。
    bz2は、configureがないので、Makefileを編集してクロスコンパイルする。

# To assist in cross-compiling
CC=arm-none-linux-gnueabi-gcc
AR=arm-none-linux-gnueabi-ar
RANLIB=arm-none-linux-gnueabi-ranlib
LDFLAGS=-L$sysroot/usr/local/lib/ -L$sysroot/usr/lib/ -L$sysroot/lib/
make -f Makefile-libbz2_so
make clean

non-sharedを作成
make

クロスコンパイル環境用にインストール
make PREFIX=$sysroot/usr/local install

sharedをクロスコンパイル環境にコピー
cp -v bzip2-shared $sysroot/usr/local/bin/bzip2
cp -av libbz2.so* $sysroot/usr/local/lib
ln -sv ../../lib/libbz2.so.1.0 /usr/lib/libbz2.so
rm -v $sysroot/usr/local/bin/{bunzip2,bzcat}
ln -sv bzip2 $sysroot/usr/local/bin/bunzip2
ln -sv bzip2 $sysroot/usr/local/bin/bzcat
http://cross-lfs.org/view/svn/alpha/final-system/bzip2.html

ls-ql用にパッケージを作成
sudo checkinstall --install=no make PREFIX=/usr/local install

  • flexgetを実行すると、sqliteがないとエラー。
    ./configure --target=arm-none-linux-gnueabi --host=arm-none-linux-gnueabi --prefix=$sysroot/usr/local
    make
    make install

    ls-ql用パッケージ作成。
    make clean ; ./configure --target=arm-none-linux-gnueabi --host=arm-none-linux-gnueabi --prefix=$sysroot/usr/local ; make
    su
    PATH=$worktop/tools/bin:$PATH
    checkinstall --install=no -A arm make install