mikhailbalin
2/10/2019 - 1:21 PM

Install

Web dev tools

  • Запросить пароль
  • Обновление
    • update
    • upgrade
  • Конфигурация Git
    • выполнить команды
  • Установка и настройка fish
  • Настройка SSH
    • скачать файлы в нужные места
    • настроить fish
  • Установка Home

Dev Tools

WSL

Для установки на Windows 10 есть официальный гид.

Проверка установленной версии:

lsb_release -a

После установки следует выполнить обновление:

sudo apt update && sudo apt upgrade -y

List distributions:

wslconfig /list
wslconfig /list /all
wslconfig /setdefault <DistributionName>

Homebrew

sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"

Fish

Установка на Ubuntu:

sudo apt-add-repository ppa:fish-shell/release-3
sudo apt update
sudo apt install fish -y

Для работы с fish по умолчанию:

chsh -s /usr/bin/fish

Чтобы добавить например /home/michel/bin к $PATH:

set -U fish_user_paths /home/michel/bin $fish_user_paths

Нужно выполнить fish_config для настроек.

Node.js

Выполнять установку через package manager или fnm:

Установить зависимости:

sudo apt install unzip -y

Выполнить скрипт для автматической установки:

curl -fsSL https://github.com/Schniz/fnm/raw/master/.ci/install.sh | bash

В новом окне терминала:

source /home/[USER]/.config/fish/config.fish

Выбрать версию для установки:

fnm ls-remote

Установить определенную версию:

fnm install [VERSION]

Посмотреть установленные версии:

fnm ls

Посмотреть определенную версию:

fnm use [VERSION]

Для инициализации проекта нужно создать package.json. Для этого ввести команду и заполнить данные:

npm init

Обновить npm:

npm install npm@latest -g

Скрипты npm

С помощью скриптов npm можно связывать команды, так же как с Gulp и Grunt.

Скрипты npm это просто команды используемые в терминале, вызываемые с помощью npm run, что означает, что можно использовать любые операторы командной строки:

  • & выполняет две команды одновременно.
  • && выполняет команды последовательно. Вторая команды выполнится только после выполнения первой.
  • | передает стандартные выходные данные (stdin) от первой команды в стандартные входные данные (stdin) второй команды.
  • || выполняет вторую команду, если не удалось выполнить первую.
  • ; позволяет выполнять несколько команд подряд, независимо от того, успешно ли выполняется каждая предыдущая команда.
  • > записывает стандартные выходные данные в файл.
  • < передает содержимое файла в стандартные входные данные следующей команды.

Python

Обычно на macOs и Ubuntu Python уже установлен. Чтобы это проверить нужно выполнить команду:

python --version

или

python3 --version

📝 Примечание: Если Python был предустановлен с операционной системой, его нужно обновить и для EB CLI возможно нужно установить python-dev или python-devel.

Зависимости:

sudo apt install make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev libxml2-dev libxmlsec1-dev python3-distutils -y

Для установки:

sudo apt update && sudo apt install python

Проверка установки:

python3 --version

Для установки pip, если он не был установлен, можно использовать скрипт предоставленный Python Packaging Authority:

curl -O https://bootstrap.pypa.io/get-pip.py

Далее нужно выполнить скрипт с помощью Python:

python3 get-pip.py --user

Добавить /home/michel/.local/bin в $PATH после установки:

set -U fish_user_paths /home/michel/.local/bin $fish_user_paths

Команда python3 вместо python помогает удостоверится в том, что pip установлен в правильном месте, даже если старая версия Python предоставлена системой.

Перезагрузить и роверить правильность установки:

pip --version

Для установки через Homebrew

You can install Python packages with

pip install <package>

They will install into the site-package directory /home/linuxbrew/.linuxbrew/lib/python2.7/site-packages.

Так же можно установить pipenv и virtualenv.

AWS CLI

Больше информации можно найти тут.

Для работы c Elastic Beanstalk из локольного репозитория через командную строку нужно установить AWS Command Line Interface (AWS CLI). Для AWS CLI нужен Python 2.6.5+ или 3.3+.

Можно использовать pip для установки EB CLI:

pip install awscli --upgrade --user

Проверить установку EB CLI:

aws --version
# EB CLI 3.7.8 (Python 3.4.3)

Azure CLI

Для установки есть инструкция

# Get packages needed for the install process:
sudo apt update
sudo apt install curl apt-transport-https lsb-release gnupg

# Download and install the Microsoft signing key:
curl -sL https://packages.microsoft.com/keys/microsoft.asc | \
    gpg --dearmor | \
    sudo tee /etc/apt/trusted.gpg.d/microsoft.asc.gpg > /dev/null

# Add the Azure CLI software repository:
AZ_REPO=$(lsb_release -cs)
echo "deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ $AZ_REPO main" | \
    sudo tee /etc/apt/sources.list.d/azure-cli.list
    
# Update repository information and install the azure-cli package:
sudo apt update
sudo apt install azure-cli

Puppeteer

Для установки Puppeteer нужно установить зависимости:

sudo apt install gconf-service libasound2 libatk1.0-0 libatk-bridge2.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget -y

В проекте:

yarn add puppeteer

Нужно отключить Firewall для публичных сетей, если нужно использовать Puppeteer с параметром headless: false.

PHP

Для установки можно воспользоваться PHPBrew.

Зависимости для Ubuntu 16.04:

sudo apt install php7.0 autoconf automake libxml2-dev libcurl4-openssl-dev libssl-dev openssl gettext libicu-dev libmcrypt-dev libmcrypt4 libbz2-dev libreadline-dev build-essential libmhash-dev libmhash2 libxslt1-dev bison re2c -y
    
curl -L -O https://github.com/phpbrew/phpbrew/raw/master/phpbrew
chmod +x phpbrew
    
# Move phpbrew to somewhere can be found by your $PATH
sudo mv phpbrew /usr/local/bin/phpbrew
    
phpbrew init
    
# I assume you're using bash
echo $'\n#phpbrew\n[[ -e ~/.phpbrew/bashrc ]] && source ~/.phpbrew/bashrc' >> ~/.bashrc
echo $'\n#phpbrew\nsource ~/.phpbrew/phpbrew.fish' >> ~/.config/fish/config.fish
    
# For the first-time installation, you don't have phpbrew shell function yet.
source ~/.phpbrew/bashrc
    
# Fetch the release list from official php site...
phpbrew update
    
# List available releases
phpbrew known
    
# install php
phpbrew install github:php/php-src@PHP-7.3.7 as 7.3.7
    
# Set 7.2.11 as default php and switch to it.
phpbrew switch 7.3.7
    
# phpbrew provides app command to fetch some php apps
phpbrew app get composer
    
# imagick extension
sudo apt-get install libmagickwand-dev libmagickcore-dev
phpbrew ext install https://github.com/mkoppanen/imagick

Ruby

Для установки подойдет rbenv.

Установка на macOS

Команда для установки:

brew install rbenv

Далее для настройки нужно выполнить rbenv init и перезагрузить терминал.

Установка на WSL

Для получения последней версии без общесистемной установки нужно выполнить команды и перезапустить терминал:

git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.profile
echo 'eval "$(rbenv init -)"' >> ~/.profile

Так же нужно установить ruby-build , которая поможет устанавливать различные версии Ruby:

mkdir -p "$(rbenv root)"/plugins
git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build

Проверить установку:

curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash
# Checking for `rbenv' in PATH: /usr/local/bin/rbenv Checking for rbenv shims in PATH: OK
# Checking `rbenv install' support: /usr/local/bin/rbenv-install (ruby-build 20170523)
# Counting installed Ruby versions: none
#   There aren't any Ruby versions installed under `~/.rbenv/versions'.
#   You can install Ruby versions like so: rbenv install 2.2.4 Checking RubyGems settings: OK
# Auditing installed plugins: OK

Перед установкой Ruby необходимо установить некоторые системные зависимости:

sudo apt install autoconf bison build-essential libssl-dev libyaml-dev libreadline-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm-dev -y

Установить определенную версию:

# lists all available versions of Ruby
rbenv install -l

# installs Ruby 2.5.1 to ~/.rbenv/versions
rbenv install 2.5.1

rbenv global 2.5.1

Для проверки установки:

ruby -v

Обновление Ruby gems:

gem update

Bundler и Jekyll

Jekyll это сборщик статических сайтов. Так же он удобен для ведения блогов. Сейчас уже существуют более современные рещения, например Gatsby.js.

Для начала нужно удостовериться в правильности выбранной версии Ruby:

rbenv version
# or
rbenv versions

Для выбора другой локальной или глобальной версии есть следующие команды:

rbenv local 2.4.1
rbenv global 2.5.1

Теперь можно установить Bundler и Jekyll для выбранной версии Ruby:

gem install bundler jekyll

Перезагрузить и проверить установку:

jekyll -v

Работа с проектом

Для того чтобы создать новый проект:

jekyll new

Или если надо создать проект в уже имеющейся директории:

jekyll new . --force

Самый простой способ установить плагины — прописать в Gemfile все что нужно:

group :jekyll_plugins do
gem “my-jekyll-plugin”
gem “another-jekyll-plugin”
end

И запустить установку:

bundle install

Для просмотра списка обновлений:

gem outdated

Для обновления:

gem update

Удалить старые версии:

gem cleanup

Картинки

libpng

libpng это библиотека, которая позволяет работать с кодировщиками, которые описываются дальше. Для установки на WSL:

git clone https://github.com/glennrp/libpng.git ~/libpng
cd ~/libpng
cp scripts/makefile.linux makefile
cp scripts/pnglibconf.h.prebuilt pnglibconf.h
make
sudo make install

sudo ldconfig #отредактировать пути к необходимым библиотекам

# или
 
sudo apt-get install libpng-dev

Guetzli

Для сжатия JPEG или PNG можно использовать Guetzli. Работает очень долго.

Для установки нужно клонировать репозиторий:

git clone https://github.com/google/guetzli.git ~/.guetzli

Установить нужные зависимости (для меня):

sudo apt-get install pkg-config

Выполнить установку:

cd guetzli
make

Бинарный файл должен быть в bin/Release/guetzli. Далее можно поробовать сжать картинку, но при этом качество не может быть ниже 84:

~/guetzli/bin/Release/guetzli --quality 85 --verbose original.png output.jpg
~/guetzli/bin/Release/guetzli --quality 85 --verbose original.jpg output.jpg

pngquant

Для работы с PNG подойдет pngquant. Для установки:

git clone --recursive https://github.com/kornelski/pngquant.git ~/pngquant
cd ~/pngquant
make

Это создаст исполняемый файл pngquant в текущей директории. Для установки во всей системе:

sudo make install

Использование:

pngquant --strip --quality=85-90 --ext _compressed.png *.png

mozjpeg

mozjpeg еще одна библиотека для сжатия JPEG. Для установки нужно установить несколько зависимостей:

sudo apt-get install build-essential autoconf pkg-config nasm libtool

git clone https://github.com/mozilla/mozjpeg.git ~/.mozjpeg
cd mozjpeg
autoreconf -fiv
./configure --with-jpeg8
make
sudo make install

jpeg-archive

jpeg-archive это набор нескольких утилит для работы с изображениями, которые в свою очередь работают за счет mozjpeg.

Для работы можно скачать последнюю версию со страницы релизов для нужной ОС. Потом распаковать, поместить в $PATH и пользоваться:

jpeg-recompress --min 35 --max 70 --strip --method smallfry --loops 16 in.jpg out.jpg

Так же можно установить Landon, чтобы параллельно работать с несколькими файломи сразу:

yarn global add ladon

Например:

# сжать JPEG и заменить оригиналы
ladon "Photos/**/*.jpg" -- jpeg-recompress FULLPATH FULLPATH

# сжать JPEG и поместить в директорию 'compressed'
ladon -m compressed/RELDIR "Photos/**/*.jpg" -- jpeg-recompress FULLPATH compressed/RELPATH

# сжать JPEG с рекомендуемыми настройками @malchata и поместить их в директории вмеcте с оригиналами, добавив к имени файла '_compressed'
ladon "Photos/**/*.jpg" -- jpeg-recompress --min 35 --max 70 --strip --method smallfry --loops 16 FULLPATH DIRNAME/BASENAME_compressed.EXT

ImageMagick

Установка:

sudo apt-get install imagemagick

sudo apt-get install build-essential

sudo vim /etc/apt/sources.list
# uncomment
# deb-src http://archive.ubuntu.com/ubuntu/ bionic main restricted

sudo apt-get update
sudo apt-get build-dep imagemagick -y

cd ImageMagick-7.0.8-12
./configure
make
sudo make install

sudo ldconfig /user/local/lib

convert --version

# test
convert icon-16.png icon-32.png icon-48.png icon-64.png favicon.ico
convert code.png code.ico

Полезные ссылки:

Шрифты

otfcc

otfcc это программа для преобразования шрифтов OpenType. В Windows достаточно скачать последниию версию.

Для конвертации OpenType и TrueType через PowerShell:

ls *.otf | % { C:\Users\<username>\Downloads\otfccdump.exe --pretty -o ($_.baseName + ".json") $_.fullname }
ls *.json | % { C:\Users\<username>\Downloads\otfccbuild.exe $_.fullname -o ($_.baseName + ".ttf") }

fontTools

С помощью fontTools можно конвертировать TrueType и OpenType и потом сжимать полученный XML (TTX) в woff или woff2.

Для установки:

pip install fonttools --user

Для конвертации на WSL:

for i in *tf; do ttx -o "$i.ttx" "$i"; done

Базы данных

PostgreSQL

sudo apt-get install -y postgresql postgresql-client postgresql-contrib
sudo service postgresql start

sudo -u postgres psql
CREATE DATABASE yourdbname;
CREATE USER youruser WITH ENCRYPTED PASSWORD 'yourpass';
GRANT ALL PRIVILEGES ON DATABASE yourdbname TO youruser;

MySQL

sudo apt-get install -y mysql-server mysql-client libmysqlclient-dev libmysqld-dev
sudo service mysql status
sudo service mysql start

sudo mysql
GRANT ALL PRIVILEGES ON *.* TO 'mikhailbalin'@'localhost' IDENTIFIED BY 'tHR26Wo2';

mysql -u mikhailbalin -ptHR26Wo2
CREATE DATABASE world;
USE db_name;
source filename.sql

mysql -u mikhailbalin -ptHR26Wo2 db_name < filename.sql
# Install packages
brew update
brew install node yarn php imagemagick ffmpeg azure-cli git-lfs git-flow-avh

# Install Yarn packages
yarn global add @vue/cli json-server serve gatsby-cli lerna npm-check-updates pkg package-size now @sanity/cli uuid

# Install Dart
# brew tap dart-lang/dart
# brew install dart