Ubuntu


blog.udartsev.ru

MySQL - Восстанавливаем системные таблицы

Бывает, что после физического переноса MySQL базыданных - движоп перестаёт обновляться. Это вызвано ошибками в InnoDB файлах системы. Поэтому, в попытке обновления мы можем увидеть предупреждения о несуществующих таблица (даже если они физически присутствуют в папке и отображаются в SQL-менеджере):

enter image description here

Для того, что бы нам исправить эти ошибки - нам нужно удалить старые таблицы и создать новые.

1) Подключаемся кMySQL движку через консоль:

mysql -u admin -p -h localhost

2) Выбираем системную БД:

use mysql;

3) Удаляем таблицу через SQL-менеджер (нужно для регистрации удаления в системных файлах движка) или через консоль:

DROP TABLE <название таблицы>;

4) В папке с системными файлами /var/lib/mysql удаляем остатки от <название таблицы> с разрешениями <название таблицы>.ibd и .frm. Например:

sudo rm /var/lib/mysql/servers.ibd
sudo rm /var/lib/mysql/servers.frm

5) Создаём новые таблицы через консоль mysql. Ниже приведены SQL запросы для восстановления таблиц.

mysql.servers

CREATE TABLE `servers` (
`Server_name` char(64) NOT NULL,
`Host` char(64) NOT NULL,
`Db` char(64) NOT NULL,
`Username` char(64) NOT NULL,
`Password` char(64) NOT NULL,
`Port` int(4) DEFAULT NULL,
`Socket` char(64) DEFAULT NULL,
`Wrapper` char(64) NOT NULL,
`Owner` char(64) NOT NULL,
PRIMARY KEY (`Server_name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8     
COMMENT='MySQL Foreign Servers table';

mysql.innodb_index_stats

CREATE TABLE `innodb_index_stats` (
`database_name` varchar(64) COLLATE utf8_bin NOT NULL,
`table_name` varchar(64) COLLATE utf8_bin NOT NULL,
`index_name` varchar(64) COLLATE utf8_bin NOT NULL,
`last_update` timestamp NOT NULL DEFAULT 
CURRENT_TIMESTAMP ON UPDATE 
CURRENT_TIMESTAMP,
`stat_name` varchar(64) COLLATE utf8_bin NOT NULL,
`stat_value` bigint(20) unsigned NOT NULL,
`sample_size` bigint(20) unsigned DEFAULT NULL,
`stat_description` varchar(1024) COLLATE utf8_bin NOT NULL,
PRIMARY KEY (`database_name`,`table_name`,`index_name`,`stat_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 
COLLATE=utf8_bin STATS_PERSISTENT=0;

mysql.innodb_table_stats

CREATE TABLE `innodb_table_stats` (
`database_name` varchar(64) COLLATE utf8_bin NOT NULL,
`table_name` varchar(64) COLLATE utf8_bin NOT NULL,
`last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`n_rows` bigint(20) unsigned NOT NULL,
`clustered_index_size` bigint(20) unsigned NOT NULL,
`sum_of_other_index_sizes` bigint(20) unsigned NOT NULL,
PRIMARY KEY (`database_name`,`table_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin STATS_PERSISTENT=0;

mysql.slave_master_info

CREATE TABLE `slave_master_info` (
`Number_of_lines` int(10) unsigned NOT NULL COMMENT 'Number of lines in the file.',
`Master_log_name` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'The name of the master binary log currently being read from the master.',
`Master_log_pos` bigint(20) unsigned NOT NULL COMMENT 'The master log position of the last read event.',
`Host` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT 'The host name of the master.',
`User_name` text CHARACTER SET utf8 COLLATE utf8_bin COMMENT 'The user name used to connect to the master.',
`User_password` text CHARACTER SET utf8 COLLATE utf8_bin COMMENT 'The password used to connect to the master.',
`Port` int(10) unsigned NOT NULL COMMENT 'The network port used to connect to the master.',
`Connect_retry` int(10) unsigned NOT NULL COMMENT 'The period (in seconds) that the slave will wait before trying to reconnect to the master.',
`Enabled_ssl` tinyint(1) NOT NULL COMMENT 'Indicates whether the server supports SSL connections.',
`Ssl_ca` text CHARACTER SET utf8 COLLATE utf8_bin COMMENT 'The file used for the Certificate Authority (CA) certificate.',
`Ssl_capath` text CHARACTER SET utf8 COLLATE utf8_bin COMMENT 'The path to the Certificate Authority (CA) certificates.',
`Ssl_cert` text CHARACTER SET utf8 COLLATE utf8_bin COMMENT 'The name of the SSL certificate file.',
`Ssl_cipher` text CHARACTER SET utf8 COLLATE utf8_bin COMMENT 'The name of the cipher in use for the SSL connection.',
`Ssl_key` text CHARACTER SET utf8 COLLATE utf8_bin COMMENT 'The name of the SSL key file.',
`Ssl_verify_server_cert` tinyint(1) NOT NULL COMMENT 'Whether to verify the server certificate.',
`Heartbeat` float NOT NULL,
`Bind` text CHARACTER SET utf8 COLLATE utf8_bin COMMENT 'Displays which interface is employed when connecting to the MySQL server',
`Ignored_server_ids` text CHARACTER SET utf8 COLLATE utf8_bin COMMENT 'The number of server IDs to be ignored, followed by the actual server IDs',
`Uuid` text CHARACTER SET utf8 COLLATE utf8_bin COMMENT 'The master server uuid.',
`Retry_count` bigint(20) unsigned NOT NULL COMMENT 'Number of reconnect attempts, to the master, before giving up.',
`Ssl_crl` text CHARACTER SET utf8 COLLATE utf8_bin COMMENT 'The file used for the Certificate Revocation List (CRL)',
`Ssl_crlpath` text CHARACTER SET utf8 COLLATE utf8_bin COMMENT 'The path used for Certificate Revocation List (CRL) files',
`Enabled_auto_position` tinyint(1) NOT NULL COMMENT 'Indicates whether GTIDs will be used to retrieve events from the master.',
PRIMARY KEY (`Host`,`Port`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 STATS_PERSISTENT=0 COMMENT='Master Information';

mysql.slave_relay_log_info

CREATE TABLE `slave_relay_log_info` (
`Number_of_lines` int(10) unsigned NOT NULL COMMENT 'Number of lines in the file or rows in the table. Used to version table definitions.',
`Relay_log_name` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'The name of the current relay log file.',
`Relay_log_pos` bigint(20) unsigned NOT NULL COMMENT 'The relay log position of the last executed event.',
`Master_log_name` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'The name of the master binary log file from which the events in the relay log file were read.',
`Master_log_pos` bigint(20) unsigned NOT NULL COMMENT 'The master log position of the last executed event.',
`Sql_delay` int(11) NOT NULL COMMENT 'The number of seconds that the slave must lag behind the master.',
`Number_of_workers` int(10) unsigned NOT NULL,
`Id` int(10) unsigned NOT NULL COMMENT 'Internal Id that uniquely identifies this record.',
PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 STATS_PERSISTENT=0 COMMENT='Relay Log Information';

mysql.slave_worker_info

CREATE TABLE `slave_worker_info` (
`Id` int(10) unsigned NOT NULL,
`Relay_log_name` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
`Relay_log_pos` bigint(20) unsigned NOT NULL,
`Master_log_name` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
`Master_log_pos` bigint(20) unsigned NOT NULL,
`Checkpoint_relay_log_name` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
`Checkpoint_relay_log_pos` bigint(20) unsigned NOT NULL,
`Checkpoint_master_log_name` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
`Checkpoint_master_log_pos` bigint(20) unsigned NOT NULL,
`Checkpoint_seqno` int(10) unsigned NOT NULL,
`Checkpoint_group_size` int(10) unsigned NOT NULL,
`Checkpoint_group_bitmap` blob NOT NULL,
PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 STATS_PERSISTENT=0 COMMENT='Worker Information';

mysql.help_topic

CREATE TABLE `help_topic` (
`help_topic_id` int(10) unsigned NOT NULL,
`name` char(64) CHARACTER SET utf8 COLLATE utf8_bin UNIQUE NULL,
`help_category_id` smallint(5) unsigned NULL,
`description` text CHARACTER SET utf8 COLLATE utf8_bin NULL,
`example` text CHARACTER SET utf8 COLLATE utf8_bin NULL,
`url` char(128) CHARACTER SET utf8 COLLATE utf8_bin NULL,
PRIMARY KEY (`help_topic_id`)
) ENGINE=`InnoDB` DEFAULT CHARSET=utf8 STATS_PERSISTENT=0 COMMENT='Installation HELP command table';

mysql.help_keyword

CREATE TABLE `help_keyword` (
`help_keyword_id` int(10) unsigned NOT NULL,
`name` char(64) CHARACTER SET utf8 COLLATE utf8_bin UNIQUE NULL,
PRIMARY KEY (`help_keyword_id`)
) ENGINE=`InnoDB` DEFAULT CHARSET=utf8 STATS_PERSISTENT=0 COMMENT='Installation HELP command table';

mysql.help_relation

CREATE TABLE `help_relation` (
`help_topic_id` int(10) unsigned NOT NULL,
`help_keyword_id` int(10) unsigned NOT NULL,
PRIMARY KEY (`help_topic_id`, `help_keyword_id`)
) ENGINE=`InnoDB` DEFAULT CHARSET=utf8 STATS_PERSISTENT=0 COMMENT='Installation HELP command table';

mysql.help_category

CREATE TABLE `help_category` (
`help_category_id` smallint(5) unsigned NOT NULL,
`name` char(64) CHARACTER SET utf8 COLLATE utf8_bin UNIQUE NULL,
`parent_category_id` smallint(5) unsigned NULL,
`url` char(128) CHARACTER SET utf8 COLLATE utf8_bin NULL,
PRIMARY KEY (`help_category_id`)
) ENGINE=`InnoDB` DEFAULT CHARSET=utf8 STATS_PERSISTENT=0 COMMENT='Installation HELP command table';

mysql.time_zone_name

CREATE TABLE `time_zone_name` (
`Name` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
`Time_zone_id` int(10) unsigned NOT NULL,
PRIMARY KEY (`Name`, `Time_zone_id`)
) ENGINE=`InnoDB` DEFAULT CHARSET=utf8 STATS_PERSISTENT=0 COMMENT='Contain time zone information';

mysql.time_zone

CREATE TABLE `time_zone` (
`Time_zone_id` int(10) unsigned NOT NULL,
`Use_leap_seconds`enum('Y','N') CHARACTER SET utf8 COLLATE utf8_bin DEFAULT 'N',
PRIMARY KEY (`Time_zone_id`)
) ENGINE=`InnoDB` DEFAULT CHARSET=utf8 STATS_PERSISTENT=0 COMMENT='Contain time zone information';

mysql.time_zone_leap_second

CREATE TABLE `time_zone_leap_second` (
`Transition_time` bigint(20) unsigned NOT NULL,
`Correction` int(11) unsigned NOT NULL,
PRIMARY KEY (`Transition_time`)
) ENGINE=`InnoDB` DEFAULT CHARSET=utf8 STATS_PERSISTENT=0 COMMENT='Contain time zone information';

mysql.time_zone_transition

CREATE TABLE `time_zone_transition` (
`Time_zone_id` int(10) unsigned NOT NULL,
`Transition_time` bigint(20) unsigned NOT NULL,
`Transition_type_id` int(10) unsigned NOT NULL,
PRIMARY KEY (`Time_zone_id`, `Transition_time`)
) ENGINE=`InnoDB` DEFAULT CHARSET=utf8 STATS_PERSISTENT=0 COMMENT='Contain time zone information';

mysql.time_zone_transition_type

CREATE TABLE `time_zone_transition_type` (
`Time_zone_id` int(10) unsigned NOT NULL,
`Transition_type_id` int(10) unsigned NOT NULL,
`Offset` int(11) DEFAULT '0' NOT NULL,
`Is_DST` tinyint(3) unsigned DEFAULT '0' NOT NULL,
`Abbreviation` char(8) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
PRIMARY KEY (`Time_zone_id`, `Transition_type_id`)
) ENGINE=`InnoDB` DEFAULT CHARSET=utf8 STATS_PERSISTENT=0 COMMENT='Contain time zone information';

mysql.gtid_executed

CREATE TABLE gtid_executed (
`source_uuid` CHAR(36) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
`interval_start` BIGINT(20) NOT NULL,
`interval_end` BIGINT(20) NOT NULL,
PRIMARY KEY (`source_uuid`, `interval_start`)
) ENGINE=`InnoDB` DEFAULT CHARSET=utf8 STATS_PERSISTENT=0 COMMENT='GTIDs stores here';

scripts/mysql_system_tables.sql:

mysql.server_cost

CREATE TABLE IF NOT EXISTS server_cost (
  cost_name   VARCHAR(64) NOT NULL,
  cost_value  FLOAT DEFAULT NULL,
  last_update TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  comment     VARCHAR(1024) DEFAULT NULL,
  default_value FLOAT GENERATED ALWAYS AS
    (CASE cost_name
       WHEN 'disk_temptable_create_cost' THEN 20.0
       WHEN 'disk_temptable_row_cost' THEN 0.5
       WHEN 'key_compare_cost' THEN 0.05
       WHEN 'memory_temptable_create_cost' THEN 1.0
       WHEN 'memory_temptable_row_cost' THEN 0.1
       WHEN 'row_evaluate_cost' THEN 0.1
       ELSE NULL
     END) VIRTUAL,
  PRIMARY KEY (cost_name)
) ENGINE=InnoDB CHARACTER SET=utf8 COLLATE=utf8_general_ci STATS_PERSISTENT=0;

mysql.engine_cost

CREATE TABLE IF NOT EXISTS engine_cost (
  engine_name VARCHAR(64) NOT NULL,
  device_type INTEGER NOT NULL,
  cost_name   VARCHAR(64) NOT NULL,
  cost_value  FLOAT DEFAULT NULL,
  last_update TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  comment     VARCHAR(1024) DEFAULT NULL,
  default_value FLOAT GENERATED ALWAYS AS
    (CASE cost_name
       WHEN 'io_block_read_cost' THEN 1.0
       WHEN 'memory_block_read_cost' THEN 0.25
       ELSE NULL
     END) VIRTUAL,
  PRIMARY KEY (cost_name, engine_name, device_type)
) ENGINE=InnoDB CHARACTER SET=utf8 COLLATE=utf8_general_ci STATS_PERSISTENT=0;

6) Перезагружаем MySQL:

sudo /etc/init.d/mysql start

PS: Подробнее о таблицах можно узнать на сайте MySQL и MariaDB: https://mariadb.com/kb/en/library/the-mysql-database-tables/


MySQL backup and restoring database

Backup database

time mysqldump -u root -p database > /var/backups/restore_backup.sql

Backup config and data

mv /var/lib/mysql /tmp/backups/mysql-lib.bak
cp /etc/mysql/my.cnf /tmp/backups/my.cnf.bak

Purge library

sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo apt-get autoremove
sudo apt-get autoclean

Reinstall

sudo apt-get update
sudo apt-get install mysql-server

Restore config

cp /tmp/backups/my.cnf.bak /etc/mysql/my.cnf
sudo service mysql restart

Create database

mysql -u root -p
mysql> CREATE DATABASE database;

Restore backup

time mysql -u root -p database < /var/backups/restore_backup.sql

Getting data from RAW (CR2) File to JPG (Ubuntu/Linux)

If you want to get data (in JPG) from your RAW file in Ubuntu/Linux, do next:

1) Install exiftool in your Linux system:

sudo apt install exiftool

2) not necessary step: view your RAW file data:

exiftool -s2 -all -b -X -fXMP:XMP foto.cr2

3) not necessary step: near the bottom, it will shows:

Composite:PreviewImage='(Binary data 1706501 bytes, use -b option to extract)'
Composite:ThumbnailImage='(Binary data 17031 bytes, use -b option to extract)'

enter image description here

4) Use the "-b" option to extract either or both:

exiftool -Composite:PreviewImage -b foto.cr2 >preview.jpg
exiftool -Composite:ThumbnailImage -b foto.cr2 >thumb.jpg

5) To extract data from all files in the folder, do next:

for i in *.CR2; do exiftool -Composite:PreviewImage -b $i > $i.jpg; done

6) Done. We did execute all JPG data from RAW files: enter image description here


Image Magick Resize from Linux

How to resize your photos from Ubuntu (Lunux) console with ImageMagick?

for i in *.JPG; do convert -quality 100 -resize 30% $i $i; done

Для каждого $i в формате JPG > конвертируем в качество 100% + ресайз 30% от оригинала, перезаписываем файл $i в $i;

Получаем вместо 8mb фото, фото 1.2mb.


PHP 7.2.1 Compiling

1) sudo ./buildconf --force

2)sudo ./configure --prefix=/etc/php72 --enable-bcmath --with-pcre-dir=/soft/php72/php-7.2.1/ext/pcre --with-gettext=/usr/lib/gettext --with-pgsql=/usr/lib/postgresql/9.5 --with-pear=/soft/php72/php-7.2.1/pear --with-tsrm-pthreads --enable-maintainer-zts --with-openssl --enable-pthreads=shared --enable-cli --enable-mbstring --enable-intl --enable-zip --enable-mysqlnd --enable-sockets --with-gd --with-mysqli --with-pdo-mysql --with-openssl --enable-dba=shared --enable-opcache --enable-calendar --enable-exif --enable-pcntl

3) sudo make sudo make test sudo make install

//////////////////////////////////// sudo -i

apt-get update

apt-get install -y git bison autoconf build-essential pkg-config gitcore libltdl-dev libbz2-dev libxml2-dev libxslt1-dev libssl-dev libicu-dev libpspell-dev libenchant-dev libmcrypt-dev libpng-dev libjpeg8-dev libfreetype6-dev libmysqlclient-dev libreadline-dev libcurl4-openssl-dev

mkdir /etc/php7

mkdir /etc/php7/cli

cd /usr/local/src

git clone https://github.com/php/php-src.git --depth=1

cd php-src/ext

git clone https://github.com/krakjoe/pthreads -b master pthreads

cd ..

./buildconf --force

php_configure_args="--prefix=/etc/php7 --with-config-file-path=/etc/php7/cli --with-config-file-scan-dir=/etc/php7/cli/conf.d --with-bz2 --with-zlib --enable-zip --with-openssl --with-curl --enable-ftp --with-mysqli --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-sysvmsg --enable-sysvsem --enable-sysvshm --enable-maintainer-zts --enable-debug --enable-fpm --with-fpm-user=www-data --with-fpm-group=www-data --enable-cli --enable-pthreads=shared --with-tsrm-pthreads"

./configure $php_configure_args

make && make install

cd /usr/local/src/php-src/ext/intl*

chmod a+x /etc/php7/bin/php-config

chmod a+x /etc/php7/bin/phpize

/etc/php7/bin/phpize

./configure --enable-intl --with-icu-dir=/usr --prefix='/etc/php7' --with-libdir='/lib/x86_64-linux-gnu' --with-php-config='/etc/php7/bin/php-config'

make && make install

cp /usr/local/src/php-src/php.ini-production /etc/php7/cli/php.ini

ln --symbolic /etc/php7/bin/php /usr/bin/php

ln --symbolic /etc/php7/sbin/php-fpm /usr/sbin/php7-fpm

echo 'zend_extension=opcache.so' >> /etc/php7/cli/php.ini

echo 'extension=pthreads.so' >> /etc/php7/cli/php-cli.ini

echo "extension=intl.so" >> /etc/php7/cli/php.ini


Настройка sendmail для использования gmail в качестве хоста передачи (smarthost)

Как настроить сендмейл для использования gmail в качестве хоста:

1) устанавливаем сендмейл и дополнительные утилиты:

sudo apt-get install sendmail sasl2-bin

2) перемещаемся в каталог /etc/mail

cd /etc/mail

3) создаём файл authinfo со следующим содержимым:

AuthInfo:smtp.gmail.com "U:username" "I:username@gmail.com" "P:password" "M:PLAIN"

AuthInfo:smtp.gmail.com:587 "U:username" "I:username@gmail.com" "P:password" "M:PLAIN"

4) выполните команду:

sudo makemap -r hash authinfo.db < authinfo

5) создадим SASL файл:

/etc/mail/sasl/sasl.m4

6) отредактируем sendmail.mc :

sudo gedit sendmail.mc

добавим строки как показано ниже (добавленные строки выделены между кода):

dnl #
include(`/etc/mail/m4/dialup.m4')dnl
include(`/etc/mail/m4/provider.m4')dnl

include(/etc/mail/tls/starttls.m4')dnl include(/etc/mail/sasl/sasl.m4')dnl FEATURE(authinfo',hash /etc/mail/authinfo.db')dnl define(SMART_HOST',smtp.gmail.com')dnl define(RELAY_MAILER_ARGS',TCP $h 587')dnl define(ESMTP_MAILER_ARGS',TCP $h 587')dnl

dnl #
dnl # Default Mailer setup
MAILER_DEFINITIONS
MAILER(`local')dnl
MAILER(`smtp')dnl

7) выполним:

sudo make 
sudo /etc/init.d/sendmail reload

8) Если все получилось без ошибок, то релей через gmail настроен. Проверяем!

Отправляем сообщение с локального хоста на mail.ru:

$ sudo mail -v your@mail.ru
Subject: Тестовое сообщение
Это тестовое сообщение
.  
...
050 235 2.7.0 Accepted
...
250 2.0.0 pBDA7MDj024641 Message accepted for 
delivery 
your@mail.ru... Sent (pBDA7MDj024641 Message 
accepted for delivery)
Closing connection to [127.0.0.1]

Done!


How to format a USB stick

Well, one could try zero'ing the raw block device to see if that can work. If you can write to that then you may be able to create a clean partition table, create a new partition and format that.

1) Suppose the USB stick is on /dev/sdc, first make sure /dev/sdc1 is unmounted:

umount /dev/sdc1

2) See if you can then clear the partition table, say by copying a bunch of zeros over the first few K

sudo dd if=/dev/zero of=/dev/sdc bs=512 count=16

3) If that works, see if you can write zeros to the whole device without it failing. To easily see if the kernel can't write to the device, first clear the current kernel messages and throw them away using:

sudo dmesg -c > /dev/null

..then zero the entire device:

sudo dd if=/dev/zero of=/dev/sdc bs=1M

..this will take a while. dd will complete when the raw block device is completely written to, or an error has occurred.

4) Then, check to see if the kernel has complained about the device, using:

dmesg

..if you see a load of error messages then you know that the USB stick is probably not in good condition.

5) However, if this works fine run fdisk or parted to create the partitions from clean, e.g. with fdisk I use:

sudo fdisk /dev/sdc

Command (m for help): n

Select (default p): p

Partition number (1-4, default 1): 1

First sector (2048-7796735, default 2048): <return>

Last sector, +sectors or +size{K,M,G} (2048-7796735, default 7796735): <return>

Command (m for help): t

Hex code (type L to list codes): 6

Command (m for help): w

..note just press return for the First and Last sector questions, fdisk will chose the correct defaults (which will be different to my example above).

6) And then format the partition with VFAT:

sudo mkfs.vfat /dev/sdc1

7) and then remove and re-insert the drive. It should be cleanly formatted.


Переезд с одного Ubuntu в другой Ubuntu

Меня сильно удивила простота перестановки Ubuntu на новые разделы, по сути на новый диск (т.к. разделы форматировались, двигались и изменялись размеры, их количество).

В общем всё, в отличии от мастадонта коммерции - Windows, всё крайне просто и не зателиво.

1) Просто копируем нашу дату на другой носитель. Как есть, можно без архивации.

2) Разбираемся там со всеми разделами как нам нужно, ставим Ubuntu.

3) Т.к. я пользуюсь пакетами из оф. репозитария (я про Postgres, Lighttpd, Apache, Nginx и т.п.), то просто копирую папки с нужыми пакетами как есть, с заменой свеже-установленных.

Всё!

Вот так, как оказалось, совершенно просто перенеслись все мои документы из /home и 16 гб. база данных Postgres со всеми настройками/паролями...

sudo service postgresql stop

enter image description here

sudo service postgresql start

Выход из режима гибернации Windows

С Windows 8 и 10 пользователям пришла новая фишка - постоянный режим гибернации из которого не так просто выйти, даже нажимая кнопки 'shutdown' / 'выключить компьютер'. Так вот, что бы наши NTFS разделы / диски стали доступны для записи и чтения из Linux, нужно грамотно убить этот процесс... В Windows запускаем коммандную строку CMD:

shutdown /s /t 0

И загружаем наш любимый Linux. Ура!


PHP 7.0 configure file

./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=

Define the location of zlib install directory --enable-bcmath Enable bc style precision math functions --with-bz2=DIR Include BZip2 support --enable-calendar Enable support for calendar conversion --disable-ctype Disable ctype functions --with-curl=DIR Include cURL support --enable-dba Build DBA with bundled modules. To build shared DBA extension use --enable-dba=shared --with-qdbm=DIR DBA: QDBM support --with-gdbm=DIR DBA: GDBM support --with-ndbm=DIR DBA: NDBM support --with-db4=DIR DBA: Oracle Berkeley DB 4.x or 5.x support --with-db3=DIR DBA: Oracle Berkeley DB 3.x support --with-db2=DIR DBA: Oracle Berkeley DB 2.x support --with-db1=DIR DBA: Oracle Berkeley DB 1.x support/emulation --with-dbm=DIR DBA: DBM support --with-tcadb=DIR DBA: Tokyo Cabinet abstract DB support --without-cdb=DIR DBA: CDB support (bundled) --disable-inifile DBA: INI support (bundled) --disable-flatfile DBA: FlatFile support (bundled) --disable-dom Disable DOM support --with-libxml-dir=DIR DOM: libxml2 install prefix --with-enchant=DIR Include enchant support. GNU Aspell version 1.1.3 or higher required. --enable-exif Enable EXIF (metadata from images) support --disable-fileinfo Disable fileinfo support --disable-filter Disable input filter support --with-pcre-dir FILTER: pcre install prefix --enable-ftp Enable FTP support --with-openssl-dir=DIR FTP: openssl install prefix --with-gd=DIR Include GD support. DIR is the GD library base install directory BUNDLED --with-webp-dir=DIR GD: Set the path to libwebp install prefix --with-jpeg-dir=DIR GD: Set the path to libjpeg install prefix --with-png-dir=DIR GD: Set the path to libpng install prefix --with-zlib-dir=DIR GD: Set the path to libz install prefix --with-xpm-dir=DIR GD: Set the path to libXpm install prefix --with-freetype-dir=DIR GD: Set the path to FreeType 2 install prefix --enable-gd-native-ttf GD: Enable TrueType string function --enable-gd-jis-conv GD: Enable JIS-mapped Japanese font support --with-gettext=DIR Include GNU gettext support --with-gmp=DIR Include GNU MP support --with-mhash=DIR Include mhash support --disable-hash Disable hash support --without-iconv=DIR Exclude iconv support --with-imap=DIR Include IMAP support. DIR is the c-client install prefix --with-kerberos=DIR IMAP: Include Kerberos support. DIR is the Kerberos install prefix --with-imap-ssl=DIR IMAP: Include SSL support. DIR is the OpenSSL install prefix --with-interbase=DIR Include Firebird support. DIR is the Firebird base install directory /opt/firebird --enable-intl Enable internationalization support --with-icu-dir=DIR Specify where ICU libraries and headers can be found --disable-json Disable JavaScript Object Serialization support --with-ldap=DIR Include LDAP support --with-ldap-sasl=DIR LDAP: Include Cyrus SASL support --enable-mbstring Enable multibyte string support --disable-mbregex MBSTRING: Disable multibyte regex support --disable-mbregex-backtrack MBSTRING: Disable multibyte regex backtrack check --with-libmbfl=DIR MBSTRING: Use external libmbfl. DIR is the libmbfl base install directory BUNDLED --with-onig=DIR MBSTRING: Use external oniguruma. DIR is the oniguruma install prefix. If DIR is not set, the bundled oniguruma will be used --with-mcrypt=DIR Include mcrypt support --with-mysqli=FILE Include MySQLi support. FILE is the path to mysql_config. If no value or mysqlnd is passed as FILE, the MySQL native driver will be used --enable-embedded-mysqli MYSQLi: Enable embedded support Note: Does not work with MySQL native driver! --with-mysql-sock=SOCKPATH MySQLi/PDO_MYSQL: Location of the MySQL unix socket pointer. If unspecified, the default locations are searched --with-oci8=DIR Include Oracle Database OCI8 support. DIR defaults to $ORACLE_HOME. Use --with-oci8=instantclient,/path/to/instant/client/lib to use an Oracle Instant Client installation --with-odbcver=HEX Force support for the passed ODBC version. A hex number is expected, default 0x0300. Use the special value of 0 to prevent an explicit ODBCVER to be defined. --with-adabas=DIR Include Adabas D support /usr/local --with-sapdb=DIR Include SAP DB support /usr/local --with-solid=DIR Include Solid support /usr/local/solid --with-ibm-db2=DIR Include IBM DB2 support /home/db2inst1/sqllib --with-ODBCRouter=DIR Include ODBCRouter.com support /usr --with-empress=DIR Include Empress support \$EMPRESSPATH (Empress Version >= 8.60 required) --with-empress-bcs=DIR Include Empress Local Access support \$EMPRESSPATH (Empress Version >= 8.60 required) --with-birdstep=DIR Include Birdstep support /usr/local/birdstep --with-custom-odbc=DIR Include user defined ODBC support. DIR is ODBC install base directory /usr/local. Make sure to define CUSTOM_ODBC_LIBS and have some odbc.h in your include dirs. f.e. you should define following for Sybase SQL Anywhere 5.5.00 on QNX, prior to running this configure script: CPPFLAGS=\"-DODBC_QNX -DSQLANY_BUG\" LDFLAGS=-lunix CUSTOM_ODBC_LIBS=\"-ldblib -lodbc\" --with-iodbc=DIR Include iODBC support /usr/local --with-esoob=DIR Include Easysoft OOB support /usr/local/easysoft/oob/client --with-unixODBC=DIR Include unixODBC support /usr/local --with-dbmaker=DIR Include DBMaker support --disable-opcache Disable Zend OPcache support --disable-opcache-file Disable file based caching --disable-huge-code-pages Disable copying PHP CODE pages into HUGE PAGES --enable-pcntl Enable pcntl support (CLI/CGI only) --disable-pdo Disable PHP Data Objects support --with-pdo-dblib=DIR PDO: DBLIB-DB support. DIR is the FreeTDS home directory --with-pdo-firebird=DIR PDO: Firebird support. DIR is the Firebird base install directory /opt/firebird --with-pdo-mysql=DIR PDO: MySQL support. DIR is the MySQL base directory If no value or mysqlnd is passed as DIR, the MySQL native driver will be used --with-zlib-dir=DIR PDO_MySQL: Set the path to libz install prefix --with-pdo-oci=DIR PDO: Oracle OCI support. DIR defaults to \$ORACLE_HOME. Use --with-pdo-oci=instantclient,prefix,version for an Oracle Instant Client SDK. For example on Linux with 11.2 RPMs use: --with-pdo-oci=instantclient,/usr,11.2 With 10.2 RPMs use: --with-pdo-oci=instantclient,/usr,10.2.0.4 --with-pdo-odbc=flavour,dir PDO: Support for 'flavour' ODBC driver. include and lib dirs are looked for under '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. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor YACC The Yet 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.