??????????????? ?????? ? ?????????? ??????? IPS ? Solaris 11
- by Roman Ivanov
? ???? ?? ???????? ????? Solaris 11 ? ?? ??? ? ????????? ????? ? ???? ??? ???? ????? ????????? ??? ?????????? ???????? Oracle VM Server for SPARC (aka LDoms). ???? ?? Python/GTK/NetBeans. ?? ?? ??? ???????. ??????? ? ???, ??? ??? ???????????? ????? ? ??????? ????? pylibssh2 ??? ????, ????? ???????????? ?? python ?? ssh ? ????????? ??????.???????? ?? ????? ???????? pylibssh2 ? libssh2, ??????? ? ?????????. ?? ? ???????, ????? ??? ?????? ???? ????????? ? ???? ??????? Solaris IPS. ?????? ? ????? ? ????????? ???????? ??????.????? ?????????, ? ?? ??????? ?????????? ?? ???????????? ? ?????????. ? ???? ????, ??? ????? ????????? configure ? make ??? ??????? ? README ;)???????????? ??????? ????? ???????? ??? ?? ???????????? LD_LIBRARY_PATH. ??? ????? ?? ? ???? ?????? ?? ??????????? ?? ? /etc/profile.? ?? ???? ????? ???????? ????????? ?????? ???. ?? ???????? ????? ?????????? ? ???? ? ?? ?????? ? ????? ?????. ??????????, ???? ???????????? ? ? ????????.????, ??? 0. ????????? ??????????? ? ???? ????? ??????? ??????????. ??? ????? ???????????, ????? ??????? ? ? ???? ???????, ????? ????? ???? ???????? ?????? ?????? ????????.
# zfs create rpool/export/repo
# zfs set atime=off rpool/export/repo
# chown roivanov:staff /export/repo
$ pkgrepo create /export/repo
$ pkgrepo set -s /export/repo publisher/prefix=tools
# pkg set-publisher -g /export/repo tools??? 1, ???????? ?????. ??? ?????? ??????? ? ????????? ? $HOME/Projects/IPS/<??? ??????>, ?? ??? ?? ?????????????. ????? ????, ??? ?????? ??????? ?????? ? ???????? ????????? ????????, ????? ?? ???????????? ????????? ?????????. ??? ?????? ??? ?????????? SunStudio cc ??? gcc.
$ export PKGREPO=/export/repo
$ mkdir -p $HOME/Projects/IPS/libssh2
$ cd $HOME/Projects/IPS/libssh2
$ export PKGROOT=`pwd`
$ unset LDFLAGS
$ PATH=$PATH:/opt/solarisstudio12.3/bin
$ export CC=cc???
$ export CC=gcc?? ????? ?????? ?????? ?????????? ?????????? (??????????????) ????? ? ../root ?????? /usr
$ export DESTDIR=$PKGROOT/root? ????????? ?????????? ../root ? ???? ?????????? ????????? ?????. ????????????? ??????????? ????? ? /usr.
$ [ -d root ] && rm -rf root
$ cp ~/??????????/libssh2-1.4.2.tar.gz .
$ tar xzf libssh2-1.4.2.tar.gz
$ cd libssh2-1.4.2? ??????, ???? ????? ?????????? ?????????? ?? /usr/local/lib, ????????????? LDFLAGS ? _????????_ ??? LD_LIBRARY_PATH
$ export LDFLAGS="-L/usr/local/lib -R/usr/local/lib"
$ ./configure
$ gmake && gmake install
$ cd ..?????? ?????? Python (pylibssh2) ???????????? ????????? ?????
$ python setup.py install --root=../root??? 2. ??????? ???? ? ????????? ??????
$ cat > MANIFEST.files.mog << EOF
set name=pkg.fmri value=library/[email protected],0.5.11-11
set name=pkg.description \
value="libssh2 is a client-side C library implementing the SSH2 protocol"
set name=pkg.summary value="libssh2 library"
set name=maintainer value="First Last <[email protected]>"
set name=info.upstream-url value=http://www.libssh2.org/
set name=variant.arch value=$(ARCH)
license ../libssh2-1.4.2/COPYING license=BSD
<transform dir path=usr$ -> edit group bin sys>
EOF
???:
library/libssh2 ??? ???????? ??????, 1.4.2 ?????? ??????, 0.5.11 ?????, 11 ????? ?????? ??????.
description ??? ????????, ? summary ??? ???????? ???????? ??????.
variant.arch ??? ????? ????????? ?????? ?????. ???? ??????????? ? ????? ?????? ????? ????? ??? ?????????? ????????, ?? ??? ? ?????? ???? ?? ????.
license ???? ? ??? ????????
transform ????????? ??? ????, ????? ? ????????????? ????? ?????? ???? ????????? ?????????? ?????? ????????? ?????????? /usr
???????? ?????? ?????? ??????
$ pkgsend generate root > MANIFEST.files.1
????????? ?????????? ?? ????? ???????? ? ?????????? ??????????? ?????????
$ pkgmogrify -DARCH=`uname -p` MANIFEST.files.1 MANIFEST.files.mog > MANIFEST.files.2
??????? ?????? ???? ????????????
$ pkgdepend generate -md root MANIFEST.files.2 | pkgfmt > MANIFEST.files.3
????????? ?????? ???????? ???????????? ? ?????? ???????. ???? ???? ?????? ????????? ?????.
$ pkgdepend resolve -m MANIFEST.files.3
?? ?????? ???????? ??????? ???? MANIFEST.files.3.res ? ????????? ??????.??? ??????? ????? ????????? ???? ???? ?? ??????? ?????????? ? ?????????? ?????????????,?????? ??? ????? ????? ???????????? ???????????.
$ pkglint -c ../lint-cache -r http://pkg.oracle.com/solaris/release/ MANIFEST.files.3.res
$ pkglint -c ../lint-cache-local -r /export/repo MANIFEST.files.3.res
? ??????????, ????????? ?????
$ pkgsend publish -s $PKGREPO -d `pwd`/root MANIFEST.files.3.res
????????? ?????? ? ?????????? ????????????????? ?????????? ????? ?????? ???? ???????????
$ pkgrepo list -s /export/repo/
????? ??????? ?????????? ????? ?? ???????????
$ pkgrepo remove -s /export/repo/ [email protected],0.5.11-8:*
????? ?????????? ?????????? ? ?????? ? ???????????
$ pkg info -r libssh2
????? ?????????? ??? ?????? ?????????, ??? ???????? ????????? ??????
$ sudo pkg install -nv libssh2
????? ?????????? ?????
$ sudo pkg install libssh2
????? ???????? ?????
$ sudo pkg refresh
$ sudo pkg update
?????? ??????:[1] How to Create and Publish Packages to an IPS Repository on Oracle Solaris 11,http://www.oracle.com/technetwork/articles/servers-storage-admin/o11-097-create-pkg-ips-524496.html[2] Publishing your own packages with IPS - getting started.https://blogs.oracle.com/barts/entry/publishing_your_own_packages_with[3] How to create your own IPS packages (Ghost Busting)http://blogs.oracle.com/cwb/entry/how_to_create_your_own[4] Introduction to IPS for Developershttp://www.oracle.com/technetwork/systems/hands-on-labs/introduction-to-ips-1534596.html