2020/01/12

yarn は npm と互換性のあるパッケージマネージャで、少しずつ使われるようになっている感じです。 

概要

  • npm よりインストールが速い
  • npmと一緒に使える
  • npm で発生するトラブル(依存)が起こりにくい(?)
  • package.json, node_modules/で構成
  • npm よりもモジュールバージョンを細かく指定可能
  • インストールされたバージョンを yarn.lock に保存 実際に高速で、Mac で npm でエラーになったものも yarn だと解決することもありました。 (ただ、逆もあるかも知れませんが)

参考

nvm インストール

nvm インストール

yarn インストール *管理者権限

apt-key を追加

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -

「/etc/apt/sources.list.d/yarn.list」に stable のURLを追加

echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list

アップデート&インストール

aptitude update
aptitude install yarn

バージョン確認

$ yarn -version
1.21.1

npm & yarnの脆弱性

2020/1/12:バージョンを最新にしておく npmとyarnの脆弱性とpostinstall - Cybozu Inside Out | サイボウズエンジニアのブログ

基本

プロジェクト作成

$ mkdir yarn_sample
$ cd yarn_sample
$ yarn init
yarn init v1.21.1
question name (www): yarn_sample
question version (1.0.0): 0.0.1
question description: yarn sample
question entry point (index.js): 
question repository url: 
question author: yoo
question license (MIT): 
question private: 
success Saved package.json
Done in 63.65s.

package.json が作成される


{
  "name": "yarn_sample",
  "version": "0.0.1",
  "description": "yarn sample",
  "main": "index.js",
  "author": "yoo",
  "license": "MIT"
}

パッケージ追加

$ yarn add [package]
$ yarn add [package]@[version]
$ yarn add [package]@[tag]

  2020/01/05
Macで npm install すると パッケージ依存によっては Pythonのバージョンが新しすぎてエラーになる。
$ npm install
gyp ERR! find Python 
gyp ERR! find Python Python is not set from command line or npm configuration
gyp ERR! find Python Python is not set from environment variable PYTHON
gyp ERR! find Python checking if "python" can be used
gyp ERR! find Python - executable path is "/Users/yoo/.pyenv/versions/3.7.1/bin/python"
gyp ERR! find Python - version is "3.7.1"
gyp ERR! find Python - version is 3.7.1 - should be >=2.6.0 <3.0.0
gyp ERR! find Python - THIS VERSION OF PYTHON IS NOT SUPPORTED
上記の場合、Mac はPython3.7系だが、npm install のライブラリが 2.7 でないとインストールできない模様
$ npm install --python=python2.7

yarn を利用する

npm でインストールがエラーになる場合は、互換性のある yarn を利用するのも良いかも知れない。 yarn インストール

  2019/12/22

Nginxで無料証明書「Let's Encrypt」を利用してみる。
「Let's Encrypt」は非営利団体の ISRG (Internet Security Research Group) が運営している、証明書の発行・インストール・更新を無料利用することができる。

インストール

Ubuntu18には「certbot」パッケージがあるのでインストール

# apt-get install certbot

※後々の設定でうまくいきませんでした。

# git clone https://github.com/certbot/certbot

こちらは、ソースないの「certbot-auto」が利用できる。

証明書の作成

certbot の場合

※設定がうまくいきませんでした。

# certbot certonly -d ドメイン名
Saving debug log to /var/log/letsencrypt/letsencrypt.log

How would you like to authenticate with the ACME CA?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: Spin up a temporary webserver (standalone)
2: Place files in webroot directory (webroot)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 

ここで、こけました。

certbot-auto の場合

certbot-auto を実行すると、Apache か Nginx 聞かれる。
この辺は、サーバ設定によりますが Nginx 個人的事情で問題があったので Apacheにしました。

# ./certbot-auto -d ict-kids.net
Saving debug log to /var/log/letsencrypt/letsencrypt.log

How would you like to authenticate and install certificates?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: Apache Web Server plugin (apache)
2: Nginx Web Server plugin (nginx)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 
...

https にリダイレクトするか聞かれますが、とりあえずリダイレクトしないようにしました。


Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

設定がうまくいくと、以下のファイルが書き出される。

/etc/letsencrypt/live/ドメイン名/fullchain.pem
/etc/letsencrypt/live/ドメイン名/privkey.pem

Apache の場合

以下のパスにファイルを作成されたようです。

Created an SSL vhost at /etc/apache2/sites-available/000-default-le-ssl.conf
Deploying Certificate to VirtualHost /etc/apache2/sites-available/000-default-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/000-default-le-ssl.conf

Nginx の場合

/etc/nginx/site-avaible/xxxx ファイルにSSLの設定を記述する

server {
        listen 443 default_server ssl;
        listen [::]:443 ssl default_server;
        server_name ドメイン名;

        ....
        ssl_certificate /etc/letsencrypt/live/ドメイン名/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/ドメイン名/privkey.pem;
        ....
}

Let's Encrypt の更新

90日で証明書の有効期限が切れるため、crontabなどで定期的に更新スクリプトを実行する必要がある。

letsencrypt renew

  2019/12/22
Apache2.4 を起動したところ以下のエラー

client denied by server configuration
/etc/apache2/apache2.conf の設定をみると

        Options FollowSymLinks
        AllowOverride None
        Require all denied



        AllowOverride None
        Require all granted



        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted



        Require all denied

基本的に拒否の設定になっているので、/etc/apache2/sites-available/000-default.conf に個別設定する必要がある。

    ...
    Require all granted
    ....

  2019/12/22
Ubuntuのユーザ関連のコマンドは、Debianと異なるようだ。

rootログイン

$ sudo su -

sudo権限

sudo権限もつけておく

$ sudo gpasswd -a xxx sudo

  2019/08/09
Debian9系だとNode.jsのバージョンが古く npmもインストールできないので、パッケージを更新してからインストールする。

# curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
# aptitude installl nodejs
# nodejs -v
v10.16.2
# npm -v
6.9.0

  2019/03/26
upgrade などしてしまって、PHP7.2のパッケージが消失してしまう。 以下を参照 How To Install PHP (7.3, 7.2 & 5.6) on Debian 9 Stretch PHP7.2を Debian 9(stretch)にインストールする方法

$ sudo apt-get install apt-transport-https lsb-release ca-certificates $ sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg $ echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list 認証して、/etc/apt/sources.list.d/ に php.list を新たに追加している模様

  2018/07/05
install libgl1-mesa-glx import matplotlib as mpl mpl.use('Agg')

  2015/04/23
FTPサーバは「vsftpd」をインストールする。 # aptitude install vsftpd # vi /etc/vsftpd.conf

  2015/03/20
# wget https://www.postgresql.org/media/keys/ACCC4CF8.asc # apt-key add ACCC4CF8.asc # aptitude update # aptitude install postgresql-9.4 # aptitude install postgresql-contrib
<< 最初 < 前ページ 次ページ > 最後 >>
yarn インストール&プロジェクト作成
2020/01/12
npm install が Mac でエラー
2020/01/05
[Ubuntu]Let's Encryptで無料の証明書を利用する
2019/12/22
[Apache]Apache2.4のアクセス制限が変更
2019/12/22
[Ubuntu]rootのログインとsudo権限追加
2019/12/22
[Debian]Node.js安定板インストール
2019/08/09
[Debian]PHPのaptパッケージが消失?
2019/03/26
[Debian]matplotlib のインストール
2018/07/05
[FTP]FTPサーバインストール
2015/04/23
wheezyにPostgreSQL9.4インストール
2015/03/20
SSL自己証明書作成とApache設定
2015/03/18
[Cassandra]Cassandraをインストール
2014/08/21
[samba]ユーザ権限
2014/08/14
[Debian]CUIで起動する
2014/07/26
ディレクトリのみアクセス権を変更する
2014/06/20
crontabのエディタをviにする
2014/06/10
[Debian]WheezyにSuvbersion1.7.xをインストール
2014/05/29
[Debian]ディストリビューション、バージョン確認
2014/05/28
[Debian]zshを使う
2014/04/22
ファイルシステム起動エラー
2014/01/21
crontabの編集でviを利用する
2013/07/04
rsyncの基本同期
2013/07/04
wgetでコンテンツを全てダウンロードする
2013/05/09
[OSX]ファイルを検索して一括削除
2013/01/24
グループにユーザを追加
2012/04/29
[Debian]Apache の mod-enabled 有効
2012/04/29
[Debian]iptables設定
2011/05/31
[Debian] crontab を vi にする
2011/05/11
[Debian]phppgadmin
2011/04/30
サーバセキュリティ設定確認
2010/12/26
SaaSesのパケットロスが醜い
2010/12/25
リダイレクトをwwwなしで統一する
2010/08/19
SVNリポジトリの作成
2010/08/06
Debian Lennyアップグレード
2010/06/24
CentOS設定メモ
2010/06/03
SVNで危うく・・・
2010/02/05