Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Темы - keremet

Страницы: 1 [2] 3 4 ... 8
16
OpenIndiana / Чтение электронных книг
« : Ноябрь 15, 2014, 12:39:12 am »
Добавить репозиторий http://pkg.openindiana.org/sfe
pkg set-publisher -g http://pkg.openindiana.org/sfe sfe

Установить fbreader
pkg install fbreader

За zip-архиве с книгой или на самой книге fb2 щелкнуть правой кнопкой и открыть с помощью "Чтение электронных книг". В меню GNOME программу можно найти в Applications/Офис

17
Скачать архив с исходниками с сайта http://webcollab.sourceforge.net/ . На момент написания заметки это webcollab-3.40.tar.gz
Распаковать архив:
tar xf webcollab-3.40.tar.gz
Дать доступ на запись в конфигурационный файл.
chmod a+w config/config.php
chmod a+w files/filebase

Пусть например распаковка выполнялась в каталог /var/apache2/2.2/htdocs/webcollab, тогда в браузере надо зайти по ссылке:

http://localhost/webcollab/setup.php
"A database is required to be created for WebCollab to operate. Do you wish to create a database now?" - нажать Yes

Создание БД аналогично collabtive (http://forum.os-solaris.ru/index.php?topic=510.0)
CREATE DATABASE `webcollab`;
GRANT ALL PRIVILEGES ON webcollab.* TO webcollab@localhost IDENTIFIED BY '1' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Заполнить поля второго шага:
Your database name:webcollab
Database user: webcollab
Database password: 1

Выбрать на одном из шагов имя и пароль для суперпользователя

После того как будет сохранен config/config.php снять с него права на запись.
chmod a-w config/config.php

Чтобы можно было сохранять русские тексты:
В файле ./database/mysql_pdo.php в function db_connection()  внести следующие изменения:

-db_query('SET time_zone=\''.sprintf('%+d:%02d', (int)TZ, (TZ - floor(TZ) ) * 60 ).'\', NAMES utf8, CHARACTER SET utf8' );
+// db_query('SET time_zone=\''.sprintf('%+d:%02d', (int)TZ, (TZ - floor(TZ) ) * 60 ).'\', NAMES utf8, CHARACTER SET utf8' );
+db_query('SET NAMES utf8' );
return;
}

Чтобы весь интерфейс был на русском языке, выполнить команды в каталоге lang:
mv ru_email.php en_email.php
mv ru_long_message.php en_long_message.php
mv ru_message.php en_message.php

Команда
grep FILE_BASE config/config.php
выдаст каталог, куда будут загружаться файлы.
Следует сделать его доступным для записи для web-сервера

18
OpenSolaris / Принтер Samsung ML-2160
« : Июль 05, 2014, 10:15:49 pm »
http://downloadcenter.samsung.com/content/DR/201110/20111019151150392/Smartpanel_1.01.tar.gz
http://downloadcenter.samsung.com/content/DR/201110/20111019151150392/PSU_1.01.tar.gz
http://org.downloadcenter.samsung.com/content/DR/200911/20091118145015140/UnifiedLinuxDriver_1.01.tar.gz

tar xf Smartpanel_1.01.tar.gz
tar xf PSU_1.01.tar.gz
tar xf UnifiedLinuxDriver_1.01.tar.gz

sudo cp ./cdroot/Linux/i386/at_root/usr/lib/cups/filter/rastertosamsungspl /usr/lib/cups/filter/
Установить из cdroot/Linux/noarch/at_opt/share/ppd/ML-2160.ppd

autorun зависает на 95%

19
OpenIndiana / Компиляция jabberd2
« : Июнь 23, 2014, 01:32:42 am »
pkg install pkg:/developer/gcc/gcc-43
pkg install pkg:/library/libidn
export PATH=/usr/gcc/4.3/bin:$PATH

wget http://www.corpit.ru/mjt/udns/udns-0.4.tar.gz
tar xf udns-0.4.tar.gz
cd udns-0.4
./configure --disable-ipv6
make

wget ftp://ftp.gnu.org/gnu/gsasl/libgsasl-1.8.0.tar.gz
tar xf libgsasl-1.8.0.tar.gz
cd libgsasl-1.8.0
CFLAGS="-O2 -I/usr/include/idn" ./configure --prefix=/home/keremet/compilation/libgsasl-1.8.0_bin  --enable-static --disable-shared
make
make install

Нужна openssl версии не ниже 1.0.1
pkg install pkg:/system/library/math/header-math
wget http://www.openssl.org/source/openssl-1.0.1h.tar.gz
tar xf openssl-1.0.1h.tar.gz
cd openssl-1.0.1h
./config --prefix=/home/keremet/compilation/openssl-1.0.1h_bin
make
make test
make install

OPENSSLDIR: "/home/keremet/compilation/openssl-1.0.1h_bin/ssl"


wget https://github.com/jabberd2/jabberd2/releases/download/jabberd-2.3.2/jabberd-2.3.2.tar.gz
tar xf jabberd-2.3.2.tar.gz
cd jabberd-2.3.2
#maximum allowed optimization level is -O2
LDFLAGS="-L/home/keremet/compilation/udns-0.4 -L/home/keremet/compilation/openssl-1.0.1h_bin/lib -L/home/keremet/compilation/libgsasl-1.8.0_bin/lib" CFLAGS="-O2 -I/usr/include/idn -I/home/keremet/compilation/udns-0.4 -I/home/keremet/compilation/libgsasl-1.8.0_bin/include -I/home/keremet/compilation/openssl-1.0.1h_bin/include" ./configure --enable-static --disable-shared --disable-experimental --prefix=/home/keremet/compilation/jabberd-2.3.2_bin
make

20
OpenIndiana / Добавление пользователя
« : Июнь 16, 2014, 02:17:48 pm »
Добавляем пользователя с именем user:
zfs create rpool/export/home/user
useradd -d /export/home/user/ -s /bin/bash user
chown user /export/home/user/
passwd user

21
OpenIndiana / Настройка ejabberd
« : Июнь 15, 2014, 10:40:24 pm »
pkg install pkg:/web/server/ejabberd
svcadm enable svc:/network/xmpp:ejabberd

# su - daemon /usr/sbin/ejabberdctl register USERNAME HOSTNAME PASSWORD

Конфиг /etc/ejabberd/ejabberd.cfg

Лог /var/ejabberd/log/ejabberd.log

netstat -a|grep LIS
*.epmd
*.41110
Надо как-то убрать эти порты

22
OpenIndiana / NAT
« : Июнь 13, 2014, 04:21:32 pm »
# cat /etc/hostname.vr0
192.168.1.1
# cat /etc/hostname.rtls1
192.168.2.1
# cat /etc/ipf/ipnat.conf
map sppp0 192.168.0.0/16 -> 0/32 proxy port ftp ftp/tcp
map sppp0 192.168.0.0/16 -> 0/32 portmap tcp/udp auto
map sppp0 192.168.0.0/16 -> 0/32

# routeadm -u -e ipv4-forwarding
# ipf -E
# ipnat -CF -f /etc/ipf/ipnat.conf

23
Официальный сайт http://collabtive.o-dyn.de/
Скачать исходники http://sourceforge.net/projects/collabtive/files/collabtive/1.2/collabtive-12.zip/download
Распаковать их в /var/apache2/2.2/htdocs/collabtive/collabtive-12

pfexec svcadm enable svc:/application/database/mysql:version_51
$ mysql -u root -p password

mysql> CREATE DATABASE `collabtive`;
mysql> GRANT ALL PRIVILEGES ON collabtive.* TO 'collabtive'@'localhost' IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
mysql> exit

Зайти по ссылке http://localhost/collabtive/collabtive-12/install.php
Ввести настройки и начать пользоваться :)

Потом по кнопке "Настройка системы/Настройка системы" изменить язык интерфейса на русский


24
.text
.globl _start

_start:
   pushl   $message_l
   pushl   $message
   pushl   $1
   movl   $4,%eax
   pushl   %eax
   syscall
   addl   $16,%esp
   
   xorl   %eax,%eax
   pushl   %eax
   incl   %eax
   pushl   %eax
   syscall
   hlt
.data
message:
   .string "HW!\n"
message_l = .-message-1

Компиляция:
 as -o test.o test.s && ld -s test.o && ./a.out

Размер: 384 байта

Трассировка:
$ truss ./a.out
execve("./a.out", 0x08047AE4, 0x08047AEC)  argc = 1
HW!
write(1, " H W !\n", 4)            = 4
_exit(0)
$

Для сравнения программа на С:
#include <unistd.h>
int main(int agrc, char** agrv){
   write(1,"HW!\n",4);
   return 0;
}

gcc -O3 ggg.c

Размер 8128 байт
Формируемый ассемблерный код (gcc -S -O3 ggg.c )
   .file   "ggg.c"
   .section   .rodata.str1.1,"aMS",@progbits,1
.LC0:
   .string   "HW!\n"
   .text
   .p2align 2,,3
.globl main
   .type   main, @function
main:
   pushl   %ebp
   movl   %esp, %ebp
   subl   $8, %esp
   andl   $-16, %esp
   subl   $20, %esp
   pushl   $4
   pushl   $.LC0
   pushl   $1
   call   write
   xorl   %eax, %eax
   leave
   ret
   .size   main, .-main

Трассировка:
$ truss ./a.out
execve("a.out", 0x08047A7C, 0x08047A84)  argc = 1
sysconfig(_CONFIG_PAGESIZE)         = 4096
mmap(0x00000000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANON, -1, 0) = 0xFEFB0000
mmap(0x00000000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANON, -1, 0) = 0xFEFA0000
memcntl(0xFEFBE000, 27724, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
mmap(0x00000000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANON, -1, 0) = 0xFEF90000
memcntl(0x08050000, 2580, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
resolvepath("/usr/lib/ld.so.1", "/lib/ld.so.1", 1023) = 12
getcwd("/data/compilation/asm", 1017)      = 0
resolvepath("/data/compilation/asm/a.out", "/data/compilation/asm/a.out", 1023) = 27
stat64("/data/compilation/asm/a.out", 0x08047720) = 0
open("/var/ld/ld.config", O_RDONLY)      Err#2 ENOENT
stat64("/usr/ccs/lib/libc.so.1", 0x08046F20)   Err#2 ENOENT
stat64("/lib/libc.so.1", 0x08046F20)      = 0
resolvepath("/lib/libc.so.1", "/lib/libc.so.1", 1023) = 14
open("/lib/libc.so.1", O_RDONLY)      = 3
mmapobj(3, 0x00020000, 0xFEF904D0, 0x08046F8C, 0x00000000) = 0
close(3)               = 0
memcntl(0xFEE30000, 188400, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
mmap(0x00010000, 24576, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFEE20000
getcontext(0x08047580)
getrlimit(RLIMIT_STACK, 0x08047578)      = 0
getpid()               = 1061 [1060]
lwp_private(0, 1, 0xFEE22A00)         = 0x000001C3
setustack(0xFEE22A60)
sysi86(SI86FPSTART, 0xFEF8700C, 0x0000133F, 0x00001F80) = 0x00000001
HW!
write(1, " H W !\n", 4)            = 4
_exit(0)


Улучшенная программа на С:
$ cat ggg_asm.h
static int inline write_asm(int fildes, const void *buf, int nbyte){
   asm("pushl %0"::"r"(nbyte));
   asm("pushl %0"::"r"(buf));
   asm("pushl %0"::"r"(fildes));
   asm("movl $4,%eax\n\t"
   "pushl   %eax\n\t"
   "syscall\n\t"
   "addl   $16,%esp");
   return 0;
}

static void inline exit_asm(int rel_value){
   asm("pushl %0"::"r"(rel_value));
   asm("movl $1,%eax\n\t"
   "pushl   %eax\n\t"
   "syscall\n\t"
   "addl   $8,%esp");   
}

$ cat ggg_asm.c
#include <ggg_asm.h>
void _start(){
   write_asm(1,"HW!\n",4);
   exit_asm(0);
}

Компиляция: gcc -fno-ident -I. -O3 -c -o ggg_asm.o ggg_asm.c && ld -s ggg_asm.o
Размер 444 байт
Формируемый ассемблерный код
   .file   "ggg_asm.c"
   .section   .rodata.str1.1,"aMS",@progbits,1
.LC0:
   .string   "HW!\n"
   .text
   .p2align 2,,3
.globl _start
   .type   _start, @function
_start:
   movl   $1, %ecx
   movl   $.LC0, %edx
   movl   $4, %eax
/APP
   pushl %eax
   pushl %edx
   pushl %ecx
   movl $4,%eax
   pushl   %eax
   syscall
   addl   $16,%esp
/NO_APP
   xorb   %al, %al
/APP
   pushl %eax
   movl $1,%eax
   pushl   %eax
   syscall
   addl   $8,%esp
/NO_APP
   ret
   .size   _start, .-_start

Трассировка:
$ truss ./a.out
execve("./a.out", 0x08047ABC, 0x08047AC4)  argc = 1
HW!
write(1, " H W !\n", 4)            = 4
_exit(0)

25
Приведенный ниже скрипт работает из предположения, что заврапленный код начинается с 21-ой строки файла

#!/usr/bin/python

import base64
import zlib
import sys

# simple substitution table
charmap = [0x3d, 0x65, 0x85, 0xb3, 0x18, 0xdb, 0xe2, 0x87, 0xf1, 0x52, 0xab, 0x63, 0x4b, 0xb5, 0xa0, 0x5f, 0x7d, 0x68, 0x7b, 0x9b, 0x24, 0xc2, 0x28, 0x67, 0x8a, 0xde, 0xa4, 0x26, 0x1e, 0x03, 0xeb, 0x17, 0x6f, 0x34, 0x3e, 0x7a, 0x3f, 0xd2, 0xa9, 0x6a, 0x0f, 0xe9, 0x35, 0x56, 0x1f, 0xb1, 0x4d, 0x10, 0x78, 0xd9, 0x75, 0xf6, 0xbc, 0x41, 0x04, 0x81, 0x61, 0x06, 0xf9, 0xad, 0xd6, 0xd5, 0x29, 0x7e, 0x86, 0x9e, 0x79, 0xe5, 0x05, 0xba, 0x84, 0xcc, 0x6e, 0x27, 0x8e, 0xb0, 0x5d, 0xa8, 0xf3, 0x9f, 0xd0, 0xa2, 0x71, 0xb8, 0x58, 0xdd, 0x2c, 0x38, 0x99, 0x4c, 0x48, 0x07, 0x55, 0xe4, 0x53, 0x8c, 0x46, 0xb6, 0x2d, 0xa5, 0xaf, 0x32, 0x22, 0x40, 0xdc, 0x50, 0xc3, 0xa1, 0x25, 0x8b, 0x9c, 0x16, 0x60, 0x5c, 0xcf, 0xfd, 0x0c, 0x98, 0x1c, 0xd4, 0x37, 0x6d, 0x3c, 0x3a, 0x30, 0xe8, 0x6c, 0x31, 0x47, 0xf5, 0x33, 0xda, 0x43, 0xc8, 0xe3, 0x5e, 0x19, 0x94, 0xec, 0xe6, 0xa3, 0x95, 0x14, 0xe0, 0x9d, 0x64, 0xfa, 0x59, 0x15, 0xc5, 0x2f, 0xca, 0xbb, 0x0b, 0xdf, 0xf2, 0x97, 0xbf, 0x0a, 0x76, 0xb4, 0x49, 0x44, 0x5a, 0x1d, 0xf0, 0x00, 0x96, 0x21, 0x80, 0x7f, 0x1a, 0x82, 0x39, 0x4f, 0xc1, 0xa7, 0xd7, 0x0d, 0xd1, 0xd8, 0xff, 0x13, 0x93, 0x70, 0xee, 0x5b, 0xef, 0xbe, 0x09, 0xb9, 0x77, 0x72, 0xe7, 0xb2, 0x54, 0xb7, 0x2a, 0xc7, 0x73, 0x90, 0x66, 0x20, 0x0e, 0x51, 0xed, 0xf8, 0x7c, 0x8f, 0x2e, 0xf4, 0x12, 0xc6, 0x2b, 0x83, 0xcd, 0xac, 0xcb, 0x3b, 0xc4, 0x4e, 0xc0, 0x69, 0x36, 0x62, 0x02, 0xae, 0x88, 0xfc, 0xaa, 0x42, 0x08, 0xa6, 0x45, 0x57, 0xd3, 0x9a, 0xbd, 0xe1, 0x23, 0x8d, 0x92, 0x4a, 0x11, 0x89, 0x74, 0x6b, 0x91, 0xfb, 0xfe, 0xc9, 0x01, 0xea, 0x1b, 0xf7, 0xce]

def decode_base64_package(base64str):
   base64dec = base64.decodestring(base64str)[20:] # we strip the first 20 chars (SHA1 hash, I don't bother checking it at the moment)
   decoded = ''
   for byte in range(0, len(base64dec)):
      decoded += chr(charmap[ord(base64dec[byte])])
   return zlib.decompress(decoded)
   

if len(sys.argv) < 2:
   sys.stderr.write("Usage: %s infile.plb [outfile]\n" % sys.argv[0])
   sys.exit(1)

infile = open(sys.argv[1])
outfile = None
if len(sys.argv) == 3:
   outfile = open(sys.argv[2], 'w')

lines = infile.readlines()
base64str = ''
for i in range(20, len(lines)):
   if lines!="/\r\n" and lines!="/\n":
      base64str += lines.replace("\n","").replace("\r","")
if outfile:
   outfile.write(decode_base64_package(base64str) + "\n")
else:
   print decode_base64_package(base64str)

26
OpenIndiana / Компиляция git
« : Март 19, 2014, 02:23:07 pm »
Так как git в OpenIndiana достаточно старый, пришлось скомпилировать последний, ориентируясь на описание http://git-scm.com/book/ru/%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5-%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-Git

Выкачать последнюю версию git
http://code.google.com/p/git-core/downloads/list
tar xf git-1.9.0.tar.gz
cd git-1.9.0
sed 's|INSTALL = /usr/ucb/install|INSTALL = /usr/bin/ginstall|g'<config.mak.uname >config.mak.uname.oi
sed 's/CC = cc/CC = gcc/g'<Makefile |sed 's/include config.mak.uname/include config.mak.uname.oi/g'>Makefile.oi
gmake -f Makefile.oi prefix=/usr/local/git-1.9.0 all
sudo gmake -f Makefile.oi prefix=/usr/local/git-1.9.0 install


После запуска gitk первый косяк, который бросается в глаза, - это шрифт русских букв. Для его устранение выбрать пункт меню Редактировать/Настройки, в появившемся окне кнопка Fonts. Выбрать как вариант шрифт clean.

Для автодописывания параметров команды git
cp contrib/completion/git-completion.bash ~/.git-completion.bash
Добавить в ~/.bashrc строку source ~/.git-completion.bash


Для нормальной работы /usr/local/git-1.9.0/bin/git mergetool поставить meld и указать его в настройках
pkg install pkg:/developer/meld
/usr/local/git-1.9.0/bin/git config --global merge.tool meld


27
OpenIndiana / Установка Eclipse
« : Февраль 28, 2014, 02:32:00 pm »
Зайти на сайт http://download.eclipse.org/eclipse/downloads/
В разделе Latest Release  щелкнуть на нужный релиз, например 4.3.1
С открывшейся страницы пройти по ссылке Solaris Platform в правом верхнем углу.
Выбрать архитектуру Solaris 10 (x86/GTK 2)

Скачанный архив распаковать в нужный каталог, запустить исполняемый файл eclipse

28
OpenIndiana / Установка OpenIndiana на SSD
« : Январь 03, 2014, 02:15:53 pm »
Чтобы сократить количество записей на SSD
1. домашний каталог и своп разместить на обычный жесткий диск.
Скопировать в /export/home/keremet файлы .bashrc и .profile из исходного домашнего каталога

sudo zfs create -V 4G oldhdd/swap

Добавить в /etc/vfstab строку
/dev/zvol/dsk/oldhdd/swap       -               -               swap    -       no      -

Удалить строку про своп на SSD.

$ zfs list
NAME                       USED  AVAIL  REFER  MOUNTPOINT
oldhdd                    6,14G   137G    32K  legacy
oldhdd/export             2,01G   137G    32K  /export
oldhdd/export/home        2,01G   137G    33K  /export/home
oldhdd/export/home/keremet  2,01G   137G  2,01G  /export/home/keremet
oldhdd/swap               4,13G   141G    16K  -
rpool                     7,24G  21,8G  45,5K  /rpool
rpool/ROOT                3,26G  21,8G    31K  legacy
rpool/ROOT/openindiana    3,26G  21,8G  3,13G  /
rpool/dump                3,94G  21,8G  3,94G  -
rpool/export              36,2M  21,8G    32K  legacy
rpool/export/home         36,2M  21,8G    33K  legacy
rpool/export/home/keremet   36,2M  21,8G  36,2M  legacy

sudo zfs set atime=off rpool
sudo zfs set atime=off rpool/ROOT
sudo zfs set atime=off rpool/ROOT/openindiana
sudo zfs set atime=off oldhdd/export
sudo zfs set atime=off oldhdd/export/home
sudo zfs set atime=off oldhdd/export/home/keremet

29
OpenIndiana / Настройка https
« : Октябрь 28, 2013, 01:35:31 pm »
svcadm disable apache22
svccfg -s apache22 setprop httpd/ssl = boolean: 'true'

cd /etc/apache2/2.2/
sudo openssl req -new -x509 -out server.crt -keyout server.key

Будут созданы 2 файла: server.crt и server.key, защищенные парольной фразой

Убрать парольную фразу:
sudo cp server.key{,.orig}
sudo openssl rsa -in server.key.orig -out server.key
sudo rm server.key.orig

Скопировать образцовый конфигурационный файл в каталог, откуда эти файлы подгружаются для использования
sudo cp /etc/apache2/2.2/samples-conf.d/ssl.conf /etc/apache2/2.2/conf.d/

svcadm enable apache22

Настройки DocumentRoot должны совпадать в /etc/apache2/2.2/httpd.conf и /etc/apache2/2.2/conf.d/ssl.conf
Для запрета http в httpd.conf должен быть убрать параметр Listen

30
OpenIndiana / Подключение к Oracle
« : Октябрь 15, 2013, 06:01:07 pm »
Скачать Instant Client  нужной версии (http://www.oracle.com/technetwork/topics/solx86soft-092689.html)
В моем случае: basic-10.2.0.5.0-solaris-x86.zip, sqlplus-10.2.0.5.0-solaris-x86.zip, basiclite-10.2.0.5.0-solaris-x86.zip, jdbc-10.2.0.5.0-solaris-x86.zip, sdk-10.2.0.5.0-solaris-x86.zip
Распаковать все архивы в один каталог (например, /home/keremet/oracle/instantclient_10_2).
Заполнить файл ~/.tnsnames.ora

Первые 2 переменные, чтобы нормально отображались русские буквы

export NLS_LANG=AMERICAN_AMERICA.UTF8
export LANG=ru_RU.UTF-8
export LD_LIBRARY_PATH=/home/keremet/oracle/instantclient_10_2
/home/keremet/oracle/instantclient_10_2/sqlplus user/passwd@server

Страницы: 1 [2] 3 4 ... 8