2016年2月

ubuntu命令行下版本升级方法

ubuntu在命令行下的版本升级,官方比较推荐的方式是使用do-release-upgrade,也即按顺序执行以下命令即可:

apt-get update
apt-get upgrade
apt-get install update-manager-core
do-release-upgrade

如果这种方式遇到如下报错:

Error authenticating some packages

It was not possible to authenticate some packages. This may be a transient network problem. You may want to try again later. See below for a list of unauthenticated packages

网上有一种解决办法是创建/etc/update-manager/release-upgrades.d/unauth.cfg文件,内容如下:

[Distro]
AllowUnauthenticated=yes

然后再执行do-release-upgrade

不过我使用该方法后仍然失败,最后只好采用debian的升级方法来进行升级,步骤如下:

修改/etc/apt/source.list文件,修改其中的版本号,比如14.04修改到15.10即将trusty替换为wily,若使用vim可以批量替换:%s/trusty/wily/g

然后依次执行以下命令即可:

apt-get update
apt-get upgrade
apt-get dist-upgrade

查看ubuntu版本命令如下:lsb_release -a

新linux服务器需安装软件包整理

nodejs

  • nodejs

  • npm install -g gulp

  • npm install -g bower

php

  • composer

  • echo PATH="$PATH:$HOME/.composer/vendor/bin" >> .bashrc

  • composer global require hirak/prestissimo

  • composer global require friendsofphp/php-cs-fixer

  • composer global require phpunit/phpunit

ruby

ptyhon

rust

curl -sSf https://static.rust-lang.org/rustup.sh | sh

PHPStorm中使用php-cs-fixer进行自动代码格式化

参考文档:https://hackernoon.com/how-to-configure-phpstorm-to-use-php-cs-fixer-1844991e521f

PHP-CS-Fixer是一款对php代码进行风格检查和自动格式化的工具,支持psr和symfony编码规范。

安装

composer global require fabpot/php-cs-fixer

在phpstorm的File > Settings > Tools > External Tools菜单内进行php-cs-fixer的配置:

QQ截图20151226115156.jpg

namedescription可自行填写

program需要填写php-cs-fixer的可执行文件地址,Windows上是用户目录\Roaming\Composer\composer\vendor\bin\php-cs-fixer.bat,linux和mac上是~/.composer/vendor/bin/php-cs-fixer

parameters--rules=@Symfony --verbose fix "$FileDir$/$FileName$",其中 rules 字段具体可以查看 php-cs-fixer 的官方文档,但是由于 Windows 的 cmd 有诸多限制,所以只能传入一些简单的规则,如果需要配置复杂规则建议使用配置文件来完成。

working directory$ProjectFileDir$

插件配置好后,到 File > Settings > Keymap 设置快捷键,快捷键设置好后就可以找个文件试一试了。

安装node和npm并切换淘宝npm镜像源

目前在大多数linux发行版内使用默认的包管理器和源安装node的时候,所安装上的node和npm的版本都会比较低,不能符合很多新项目的需求,所以我们只有到node的官网下载所需版本的node源码进行编译安装。

编译安装完成之后执行以下命令将node和npm加入/usr/bin:

ln -s /usr/local/bin/node /usr/bin/node
ln -s /usr/local/lib/node_modules/npm/bin/npm-cli.js /usr/bin/npm

此时通过以下命令查看版本,判断是否已正确安装:

node --version
npm --version

npm官方源由于不可避免的原因比较慢,而淘宝对npm做了镜像,我们可以使用这个镜像来替换官方源。使用这个源的方式有很多,不过需要注意的是,直接npm全局安装cnpm的话是会出现问题的,这可能是因为淘宝的cnpm的版本和当前npm的版本相比落后较多造成的。

如果直接替换npm的源可以使用如下命令:

npm config set registry https://registry.npm.taobao.org

如果想使用cnpm,而不是直接替换npm的源,比较推荐的方式有两种,一种是在.bashrc结尾添加alias,退出后重新进入或source .bashrc后生效

alias cnpm="npm --registry=https://registry.npm.taobao.org \
  --cache=$HOME/.npm/.cache/cnpm \
  --disturl=https://npm.taobao.org/dist \
  --userconfig=$HOME/.cnpmrc"

另外一种是编辑.npmrc文件,在其中添加

registry =https://registry.npm.taobao.org

2018.03.14 更新:

现在可以通过 nrm 这个包来切换镜像,十分方便。

npm i -g nrm #全局安装 nrm
nrm ls #查看可以使用的镜像列表
nrm use taobao #使用淘宝镜像源

语言决定世界观的一些感悟(待续)

平时的工作和业余项目中主要使用的语言都是php,这也就使得我产生了一些错误的认识。

比如json其实是无序的,但是在php中使用json将php中的数据结构与json格式字符串进行转换时,从来都是有序的,所以我一直以为json是有序的。

比如在html的表单中将input元素命名为name[]的形式,在服务端用php获取到的就是一个数组,但是实际上除了php之外,其他很少有语言能够正常获取到这种传值。