Меня сильно удивила простота перестановки Ubuntu на новые разделы, по сути на новый диск (т.к. разделы форматировались, двигались и изменялись размеры, их количество).
В общем всё, в отличии от мастадонта коммерции - Windows, всё крайне просто и не зателиво.
1) Просто копируем нашу дату на другой носитель. Как есть, можно без архивации.
2) Разбираемся там со всеми разделами как нам нужно, ставим Ubuntu.
3) Т.к. я пользуюсь пакетами из оф. репозитария (я про Postgres, Lighttpd, Apache, Nginx и т.п.), то просто копирую папки с нужыми пакетами как есть, с заменой свеже-установленных.
Всё!
Вот так, как оказалось, совершенно просто перенеслись все мои документы из /home и 16 гб. база данных Postgres со всеми настройками/паролями...
sudo service postgresql stop
sudo service postgresql start
С Windows 8 и 10 пользователям пришла новая фишка - постоянный режим гибернации из которого не так просто выйти, даже нажимая кнопки 'shutdown' / 'выключить компьютер'. Так вот, что бы наши NTFS разделы / диски стали доступны для записи и чтения из Linux, нужно грамотно убить этот процесс... В Windows запускаем коммандную строку CMD:
shutdown /s /t 0
И загружаем наш любимый Linux. Ура!
Закидываю рабочую настройку Apache 2.4 + PHP7 with pThreads. Всё настраивалось на серверах Oracle с многопоточным процессором Sun4v.
APACHE --htmldir=/www --prefix=/etc/apache2 --enable-so
copy PHP from: git clone https://github.com/php/php-src.git --depth=1
PHP7 pthreads 1) скачать и скопировать pthreads в /soft/php-7.0.*/ext/pthreads 2) выполнить sudo ./buildconf --force 3) выполнить sudo ./configure --prefix=/etc/php7 --with-apxs2=/etc/apache2/bin/apxs --enable-bcmath --with-zlib=/usr/local --with-curl=/usr/include/curl --with-pcre-dir=/usr/include --with-gettext=/usr/include --with-pgsql=/usr/lib/postgresql/9.5 --enable-zip --with-pear=/etc/php7 --with-tsrm-pthreads --enable-maintainer-zts --with-zlib=/usr/local --with-openssl --enable-pthreads=shared --disable-cli --enable-cli --enable-iconv --enable-mbstring
NORMAL 3) выполнить sudo ./configure --prefix=/etc/php7 --with-apxs2=/etc/apache2/bin/apxs --with-bz2 --with-zlib --enable-zip --enable-soap --enable-intl --with-mcrypt --with-openssl --with-readline --with-curl --enable-pcntl --with-gettext --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-xsl --enable-bcmath --enable-mbstring --enable-calendar --enable-simplexml --enable-json --enable-hash --enable-session --enable-xml --enable-wddx --enable-opcache --with-pcre-regex --with-config-file-path=/etc/php7 --with-config-file-scan-dir=/etc/php7 --with-pgsql
CONFIGURE_STRING="--prefix=/etc/php7 --with-bz2 --with-zlib --enable-zip --disable-cgi --enable-soap --enable-intl --with-mcrypt --with-openssl --with-apxs2=/etc/apache2/bin/apxs --with-pgsql=/usr/lib/postgresql/9.5 --with-readline --with-curl --enable-ftp --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-sockets --enable-pcntl --with-pspell --with-enchant --with-gettext --with-gd --enable-exif --with-jpeg-dir --with-png-dir --with-freetype-dir --with-xsl --enable-bcmath --enable-mbstring --enable-calendar --enable-simplexml --enable-json --enable-hash --enable-session --enable-xml --enable-wddx --enable-opcache --with-pcre-regex --with-config-file-path=/etc/php7/cli --with-config-file-scan-dir=/etc/php7/etc --enable-cli --enable-maintainer-zts --with-tsrm-pthreads --enable-debug --enable-fpm --with-fpm-user=www-data --with-fpm-group=www-data"
./configure $CONFIGURE_STRING
SOLARIS10: --with-openssl=/usr/sfw/include/openssl
CONFIGURE_STRING="--prefix=/etc/php7 --with-bz2 --with-zlib --enable-zip --disable-cgi --enable-soap --enable-intl --with-mcrypt --with-pgsql --with-readline --with-curl --enable-ftp --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-sockets --enable-pcntl --with-pspell --with-enchant --with-gettext --with-gd --enable-exif --with-jpeg-dir --with-png-dir --with-freetype-dir --with-xsl --enable-bcmath --enable-mbstring --enable-calendar --enable-simplexml --enable-json --enable-hash --enable-session --enable-xml --enable-wddx --enable-opcache --with-pcre-regex --with-config-file-path=/etc/php7/cli --with-config-file-scan-dir=/etc/php7 --enable-cli --enable-maintainer-zts --with-tsrm-pthreads --enable-debug --enable-fpm --with-fpm-user=www-data --with-fpm-group=www-data"
./configure $CONFIGURE_STRING
Что бы сайт зарегистрировать в поисковых системах, для индексации контента, добавляем его здесь:
Mail.ru: http://webmaster.mail.ru
Yandex.ru: https://webmaster.yandex.ru
Google.com: https://www.google.com/webmasters
Yahoo.com: https://search.yahoo.com Он же Bing.com: https://www.bing.com/webmaster
Nigma.ru: http://nigma.ru
Rambler.ru: http://top100.rambler.ru/register/1
После всех манипуляций мы увидим:
mail.ru:
yandex.ru:
google.com:
yahoo.com / bing.com:
nigma.ru (гы-гы:-)
rambler.ru:
Из личного опыта по оптимизации PostgreSQL базы данных.
Объем строк: >>> 800067 raws.
Строки типа: TEXT
Разбитие строк: ,TEXT1,TEXT2,TEXT3,~~~,
>>> 800067 raws.
ALTER TABLE table.list ADD COLUMN itemnameTSVector TSVECTOR;
UPDATE table.list SET itemnameTSVector = to_tsvector(itemname);
CREATE INDEX list_GINindex ON table.list
USING GIN(itemnameTSVector);
Поисковый запрос без использования индекса:
>>> 7.2 sec.
SELECT * FROM table.list
WHERE itemname LIKE '%TEXT1%'
and itemname LIKE '%TEXT3%';
Поисковый запрос с использованием индекса:
>>> 7.0 sec.
SELECT * FROM table.list
WHERE tsvector(itemnameTSVector)
@@ tsquery('TEXT1 & TEXT3');
Далее пробовал с поисковым запросом без индекса, но с запятыми, как с разделителями:
>>> 7.0 sec.
SELECT * FROM table.list
WHERE itemname LIKE '%,TEXT1,%'
and itemname LIKE '%,TEXT3,%';
Вот и вся оптимизация. Результат на лицо.
./configure --help файл просто чо-бы не валялся в системе, напоминалка
-h, --help display this help and exit
--help=short display options specific to this package
--help=recursive display the short help of all the included packages
-V, --version display version information and exit
-q, --quiet, --silent do not print checking ...' messages
--cache-file=FILE cache test results in FILE [disabled]
-C, --config-cache alias for
--cache-file=config.cache'
-n, --no-create do not create output files
--srcdir=DIR find the sources in DIR [configure dir or `..']
Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [/usr/local] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX]
By default,
make install' will install all the files in
/usr/local/bin',/usr/local/lib' etc. You can specify an installation prefix other than
/usr/local' using--prefix', for instance
--prefix=$HOME'.
For better control, use the options below.
Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR]
System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] --target=TARGET configure for building compilers for TARGET [HOST]
Optional Features and Packages: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-libdir=NAME Look for libraries in .../NAME rather than .../lib --disable-rpath Disable passing additional runtime library search paths --enable-re2c-cgoto Enable -g flag to re2c to use computed goto gcc extension --disable-gcc-global-regs whether to enable GCC global register variables
SAPI modules:
--with-apxs2=FILE Build shared Apache 2.0 Handler module. FILE is the optional pathname to the Apache apxs tool apxs --disable-cli Disable building CLI version of PHP (this forces --without-pear) --enable-embed=TYPE EXPERIMENTAL: Enable building of embedded SAPI library TYPE is either 'shared' or 'static'. TYPE=shared --enable-fpm Enable building of the fpm SAPI executable --with-fpm-user=USER Set the user for php-fpm to run as. (default: nobody) --with-fpm-group=GRP Set the group for php-fpm to run as. For a system user, this should usually be set to match the fpm username (default: nobody) --with-fpm-systemd Activate systemd integration --with-fpm-acl Use POSIX Access Control Lists --with-litespeed Build PHP as litespeed module --enable-phpdbg Build phpdbg --enable-phpdbg-webhelper Build phpdbg web SAPI support --enable-phpdbg-debug Build phpdbg in debug mode --disable-cgi Disable building CGI version of PHP
General settings:
--enable-gcov Enable GCOV code coverage (requires LTP) - FOR DEVELOPERS ONLY!! --enable-debug Compile with debugging symbols --with-layout=TYPE Set how installed files will be laid out. Type can be either PHP or GNU [PHP] --with-config-file-path=PATH Set the path in which to look for php.ini [PREFIX/lib] --with-config-file-scan-dir=PATH Set the path where to scan for configuration files --enable-sigchild Enable PHP's own SIGCHLD handler --enable-libgcc Enable explicitly linking against libgcc --disable-short-tags Disable the short-form <? start tag by default --enable-dmalloc Enable dmalloc --disable-ipv6 Disable IPv6 support --enable-dtrace Enable DTrace support --enable-fd-setsize Set size of descriptor sets
Extensions:
--with-EXTENSION=shared[,PATH]
NOTE: Not all extensions can be build as 'shared'.
Example: --with-foobar=shared,/usr/local/foobar/
o Builds the foobar extension as shared extension.
o foobar package install prefix is /usr/local/foobar/
--disable-all Disable all extensions which are enabled by default
--disable-libxml Disable LIBXML support --with-libxml-dir=DIR LIBXML: libxml2 install prefix --with-openssl=DIR Include OpenSSL support (requires OpenSSL >= 0.9.8) --with-kerberos=DIR OPENSSL: Include Kerberos support --with-system-ciphers OPENSSL: Use system default cipher list instead of hardcoded value --with-pcre-regex=DIR Include Perl Compatible Regular Expressions support. DIR is the PCRE install prefix BUNDLED --without-sqlite3=DIR Do not include SQLite3 support. DIR is the prefix to SQLite3 installation directory. --with-zlib=DIR Include ZLIB support (requires zlib >= 1.0.9) --with-zlib-dir=
'flavour' can be one of: ibm-db2, iODBC, unixODBC, generic
If ',dir' part is omitted, default for the flavour
you have selected will be used. e.g.:
--with-pdo-odbc=unixODBC
will check for unixODBC under /usr/local. You may attempt
to use an otherwise unsupported driver using the \"generic\"
flavour. The syntax for generic ODBC support is:
--with-pdo-odbc=generic,dir,libname,ldflags,cflags
When built as 'shared' the extension filename is always pdo_odbc.so
--with-pdo-pgsql=DIR PDO: PostgreSQL support. DIR is the PostgreSQL base install directory or the path to pg_config --without-pdo-sqlite=DIR PDO: sqlite 3 support. DIR is the sqlite base install directory BUNDLED --with-pgsql=DIR Include PostgreSQL support. DIR is the PostgreSQL base install directory or the path to pg_config --disable-phar Disable phar support --disable-posix Disable POSIX-like functions --with-pspell=DIR Include PSPELL support. GNU Aspell version 0.50.0 or higher required --with-libedit=DIR Include libedit readline replacement (CLI/CGI only) --with-readline=DIR Include readline support (CLI/CGI only) --with-recode=DIR Include recode support --disable-session Disable session support --with-mm=DIR SESSION: Include mm support for session storage --enable-shmop Enable shmop support --disable-simplexml Disable SimpleXML support --with-libxml-dir=DIR SimpleXML: libxml2 install prefix --with-snmp=DIR Include SNMP support --with-openssl-dir=DIR SNMP: openssl install prefix --enable-soap Enable SOAP support --with-libxml-dir=DIR SOAP: libxml2 install prefix --enable-sockets Enable sockets support --enable-sysvmsg Enable sysvmsg support --enable-sysvsem Enable System V semaphore support --enable-sysvshm Enable the System V shared memory support --with-tidy=DIR Include TIDY support --disable-tokenizer Disable tokenizer support --enable-wddx Enable WDDX support --with-libxml-dir=DIR WDDX: libxml2 install prefix --with-libexpat-dir=DIR WDDX: libexpat dir for XMLRPC-EPI (deprecated) --disable-xml Disable XML support --with-libxml-dir=DIR XML: libxml2 install prefix --with-libexpat-dir=DIR XML: libexpat install prefix (deprecated) --disable-xmlreader Disable XMLReader support --with-libxml-dir=DIR XMLReader: libxml2 install prefix --with-xmlrpc=DIR Include XMLRPC-EPI support --with-libxml-dir=DIR XMLRPC-EPI: libxml2 install prefix --with-libexpat-dir=DIR XMLRPC-EPI: libexpat dir for XMLRPC-EPI (deprecated) --with-iconv-dir=DIR XMLRPC-EPI: iconv dir for XMLRPC-EPI --disable-xmlwriter Disable XMLWriter support --with-libxml-dir=DIR XMLWriter: libxml2 install prefix --with-xsl=DIR Include XSL support. DIR is the libxslt base install directory (libxslt >= 1.1.0 required) --enable-zip Include Zip read/write support --with-zlib-dir=DIR ZIP: Set the path to libz install prefix --with-pcre-dir ZIP: pcre install prefix --with-libzip=DIR ZIP: use libzip --enable-mysqlnd Enable mysqlnd explicitly, will be done implicitly when required by other extensions --disable-mysqlnd-compression-support Disable support for the MySQL compressed protocol in mysqlnd --with-zlib-dir=DIR mysqlnd: Set the path to libz install prefix
PEAR:
--with-pear=DIR Install PEAR in DIR [PREFIX/lib/php] --without-pear Do not install PEAR
Zend:
--enable-maintainer-zts Enable thread safety - for code maintainers only!! --disable-inline-optimization If building zend_execute.lo fails, try this switch --enable-zend-signals Use zend signal handling
TSRM:
--with-tsrm-pth=pth-config Use GNU Pth --with-tsrm-st Use SGI's State Threads --with-tsrm-pthreads Use POSIX threads (default)
Libtool:
--enable-shared=PKGS Build shared libraries default=yes --enable-static=PKGS Build static libraries default=yes --enable-fast-install=PKGS Optimize for fast installation default=yes --with-gnu-ld Assume the C compiler uses GNU ld default=no --disable-libtool-lock Avoid locking (might break parallel builds) --with-pic Try to use only PIC/non-PIC objects default=use both --with-tags=TAGS Include additional configurations automatic
Some influential environment variables:
CC C compiler command
CFLAGS C compiler flags
LDFLAGS linker flags, e.g. -LYet Another Compiler Compiler' implementation to use.
Defaults to the first program found out of:
bison -y', byacc',
yacc'.
YFLAGS The list of arguments that will be passed by default to $YACC.
This script will default YFLAGS to the empty string to avoid a
default value of `-d' given by some make applications.
CXX C++ compiler command
CXXFLAGS C++ compiler flags
CXXCPP C++ preprocessor
Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations.
Report bugs to the package provider.
dpkg встал, скачивая пакет из Oracle... дабудьпроклятаэтакомпания!
Набираем: sudo fuser -v /var/cache/debconf/config.dat
Видим:
Убиваем: sudo kill PID sudo kill -9 PID # if the first doesn't work
Здесь такое дело. Как-то, с год назад, я начал в плотную осваивать языки программирования для моих проектов (genme.net, sistemaexport.ru).
Долго выбирал, с чего начать. И был выбран PHP, т.к. его знал немного ранее, был опыт, понимание и т.д. Тем более, что меня интересовала как многопоточность, скорость расчетов, так и серверная база.
Короче. Ковырялся в Windows с установкой denwer. Возможностей там раз-два... PostgreSQL - проблема, MySQL - проблема, PHP-cli - проблема... короче снес. Затем поставил openserver. Тоже не лучший вариант: нет многопоточности (нормального cli режима), да и с настройкой проблемы... Ну да ладно, первые скрипты были написаны там. Затем, за буквально два дня, для автономной работы был поднят сервер на ubuntu desktop. И поняслись постоянные проблемы с отладкой т.к. скрипны написаны в Windows среде, а исполняются в Linux...
Выход был найден установкой Ubuntu Desktop на лэптоп с разбивкой жесткого диска на разделы и установкой Grub.
Помогло на время - пока не закончилось место в логическом разделе Linux. А создание новых разделов привысило допустимы лимит... Выход был один - разносить системы на отдельные носители.
Решил поставить дополнительны диск в рабочий лэптоп, а т.к. слотов для подключения нового девайса нет - была найдена вот такая штуковина:
Слева - SSD. Справа - переходник вместо CDROM`а.
Весело и радужно всё запихнули в агрегат:
И началась пляска с бубном...
1) Ранее, уже как три месяца к времени апгрейда, у меня вылетел Windows. Так что было решено перенести всю инфу и разделы на новый диск с полным копированием. Инструктаж.
2) Загружаемся с LiveCD, Фигачим в cmd:
sudo fdisk –l
sudo dd if=/dev/sdb of=/dev/sdc
Фигня с объемом...
3) Ждем nn-ое количество времени и пытаемся восстановить Windows с уже нового носителя. Бесполезно, разделы нарушены. Мало того, т.к. диски были с точностью скопированы, название и ID разделов конфиктовали друг с другом, не дав запуститься...
4) Фарматнул новый SSD. Установил Windows с USB ISO. Скопировал через Ubuntu Live CD дату на новый SSD. Зпустил Windows. OK
5) Далее, монируем оба SSD, где SSD с Windows уходит как хламосборщик в слот от CDROM. Загружаемся с Ubuntu LiveCD, бновляем grub, пытаемся запустить linux => error, бесконечно вылетаем в emergency mode. Пытаемся запустить Windows => boot error. Кусок говна.
6) Силой мысли и форумов, пытаемся понять, что проблема в загрузочных секторах - конфликт. Проверяем bios, убеждаемся, что bios не видит новый SSD (тот, что через переходник). Это плохо, но всё возможно.
7) Думая о лучшем, удаляем boot сектор на SSD c Linux и восстанавливаем загрузчик Windows, затем Grub. Пример. Херачим:
bootrec.exe /FixMbr
bootrec.exe /FixBoot
bootsect /NT60 SYS
И update grub, ранее, а сейчас Boot Repair.
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update && sudo apt-get install -y boot-repair
И снова попадаем в замкнутый круг. Ubuntu слетает к чертям в emergency, windows не грузится.
Пытаемся решить задачу. Мы же упрямые. Да и нагадили уже по самое.
8) Выносим мозг с восстановлением разделов на старом SSD (тот, что Linux): работаем через Ubuntu Live CD с уилитой testdisk. Выискиваем глубоко и долго. Восстанавливаем нужные разделы.
9) Копируем данные linux в наш новый SSD - в мусоросборщик. Форматируем разделы и переустанавливаем Ubuntu. Запуск. OK! Ubuntu джобает. Windows сопротивляется...
10 ) Восстанавливаем загрузчик Windows... в очередной раз. Загружаемся с Windows USB, заходим в командную строку, пишем:
bootrec /FixMbr
bootrec /FixBoot
Не помогает. =) А помогает только:
bootrec /RebuildBcd
11) Грузим то-да-сё. Всё работает. Ура!
Квест пройден. Бубен порван и 24 часа жизни успешно отправлены в корзину.
Резюме: Думай дважды, юный падаван, перед началом большого пути... ;-) Нужно было сразу разносить по носителям, теперь еще и софт восстанавливать...
Решил здесь записать видеоблог об обжиме компьютернх проводов:
1) Оказывается, не работал обжимной инструмент (есть в видео). 2) Перекачка видео с iOS устройств в Ubuntu - та еще жопа. 3) Еще большей жопо оказалось склейка видео видео-редакторами Linux.
List item Установил Kdenlive , работает совсем хуже чем SonyVegas, раскладка, скорость отклика, инструментарий. Экспорт вообще по жести 5-8 часов в HD качестве для YouTube... Просто за гранью.
List item Далее установил openshot-qt. Оказалось не меньшей жопы то, что он не видит разделы NTFS! Короче, мрак...
Получившееся видео творение здесь => тыц. Наслаждайтесь =)
Have found smth. interesting here => http://bigocheatsheet.com/
Know Thy Complexities!
Hi there! This webpage covers the space and time Big-O complexities of common algorithms used in Computer Science. When preparing for technical interviews in the past, I found myself spending hours crawling the internet putting together the best, average, and worst case complexities for search and sorting algorithms so that I wouldn't be stumped when asked about them. Over the last few years, I've interviewed at several Silicon Valley startups, and also some bigger companies, like Google, Facebook, Yahoo, LinkedIn, and eBay, and each time that I prepared for an interview, I thought to myself "Why hasn't someone created a nice Big-O cheat sheet?". So, to save all of you fine folks a ton of time, I went ahead and created one. Enjoy! - Eric