Mac下composer安装
⼀、⾃⼰安装过程:
安装过程中出现的问题
在Linux中安装的应⽤程序可⽤需要满⾜两个条件:1、该应⽤程序在环境变量的⽬录⾥;2、该程序可执⾏
例1.
MFHJ-DZ-001-255deMacBook-Pro% cd /usr/bin
MFHJ-DZ-001-255deMacBook-Pro% touch a
touch: a: Operation not permitted
MFHJ-DZ-001-255deMacBook-Pro% sudo touch a
Password:
touch: a: Operation not permitted
例2.
MFHJ-DZ-001-255deMacBook-Pro% cd ../local/bin
MFHJ-DZ-001-255deMacBook-Pro% touch a
MFHJ-DZ-001-255deMacBook-Pro% cd
MFHJ-DZ-001-255deMacBook-Pro% a
zsh: permission denied: a
MFHJ-DZ-001-255deMacBook-Pro% sudo chmod +x /usr/local/bin/a
MFHJ-DZ-001-255deMacBook-Pro% a //a可⽤了
MFHJ-DZ-001-255deMacBook-Pro% rm /usr/local/bin/a
sudo chmod +x:加可执⾏权限
composer是⼀个PHP⽂件但是安装例如beanbun,直接使⽤composer require kiddyu/beanbun,不必要使⽤php composer是因为:
MFHJ-DZ-001-255deMacBook-Pro% head /usr/local/bin/composer
#!/usr/bin/env php
<?php
/*
* This file is part of Composer.
*
* (c) Nils Adermann <naderman@naderman.de>
*    Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view
* the license that is located at the bottom of this file.
compser头部有⼀⾏代码为#!/usr/bin/env php
了解改⾏代码作⽤移步⽂章:
⼆:⼿册安装教程
局部安装
要真正获取 Composer,我们需要做两件事。⾸先安装 Composer (同样的,这意味着它将下载到你的项⽬中):
curl -sS /installer | php
注意:如果上述⽅法由于某些原因失败了,你还可以通过php >下载安装器:
php -r "readfile('/installer');" | php
这将检查⼀些 PHP 的设置,然后下载composer.phar到你的⼯作⽬录中。这是 Composer 的⼆进制⽂件。这是⼀个 PHAR 包(PHP 的归档),这是 PHP 的归档格式可以帮助⽤户在命令⾏中执⾏⼀些操作。
你可以通过--install-dir选项指定 Composer 的安装⽬录(它可以是⼀个绝对或相对路径):
curl -sS /installer | php -- --install-dir=bin
全局安装
你可以将此⽂件放在任何地⽅。如果你把它放在系统的PATH⽬录中,你就能在全局访问它。在类Unix系统中,你甚⾄可以在使⽤时不加php前缀。
你可以执⾏这些命令让composer在你的系统中进⾏全局调⽤:
curl -sS /installer | php
mv composer.phar /usr/local/bin/composer
注意:如果上诉命令因为权限执⾏失败,请使⽤ sudo 再次尝试运⾏mv那⾏命令。
现在只需要运⾏composer命令就可以使⽤ Composer ⽽不需要输⼊php composer.phar。
全局安装 (on OSX via homebrew)
Composer 是 homebrew-php 项⽬的⼀部分。
brew update
brew tap josegonzalez/homebrew-php
brew tap homebrew/versions
brew install php55-intl
brew install josegonzalez/php/composer
三、附加:环境变量:(基于上述⼿册安装教程分为局部安装和全局安装,引出Linux的环境变量概念)
(⼀)、什么是环境变量
环境变量是在操作系统中具有⼀个特定名字的对象,它包含了⼀个或多个应⽤程序所将要使⽤到的信息。环境变量相当于给系统或⽤户应⽤程序设置的⼀些参数,具体什么作⽤这当然和具体的环境变量有关。
(⼆)、linux下的环境变量
linux是⼀个多⽤户的操作系统,每个⽤户登录系统之后,都会有⼀个专⽤的运⾏环境。通常每个⽤户默
认的环境都是相同的,这个默认的环境实际上就是⼀组环境变量的定义。⽤户可以对⾃⼰的运⾏环境进⾏定制,其⽅法就是修改相应的系统环境变量。
在linux中,环境变量⼀般⽤⼤写加下划线命名。环境变量就相当于⼀个指针,当我们要查看指针所指向的值的时候需要解引⽤,同样的,当我们要想查看环境变量⾥⾯的值的时候,需要在前⾯加$引⽤。
linux的变量分为环境变量和本地变量:
环境变量:是⼀种全局变量,存在所有的shell中,在登录的时候就有系统定义的环境变量了。linux的环境变量具有继承性,即shell会继承⽗shell的环境变量。
本地变量:当前shell中的变量,本地变量中包含环境变量。linux的本地变量的⾮环境变量不具备继承性。
在linux下⾯的变量按照⽣存周期可分为两类:
1、永久的:需要修改配置⽂件,变量永久的⽣效。
2、临时的:使⽤export命令声明即可,变量在关闭shell时失效。
(三)、常见的环境变量
1、PATH:指定命令的搜索路径。
我们可以看到,在当前⽬录下,默认的PATH的值。它表⽰当我们在当前⽬录下执⾏⼀条命令时命令的搜索路径。每⼀个⽬录都是以冒号隔开的。例如,当我们执⾏⼀个可执⾏程序是,系统就会到这些⽬录下⾯去,在这些⽬录下到的话才执⾏,不到的话就不执⾏。
举例:
dz模板安装教程MFHJ-DZ-001-255deMacBook-Pro% which ls
/bin/ls
(对上述全局安装和局部安装解释:局部安装就是安装在/usr/local/bin或者/bin下,局部安装的话只能在该⽬录下使⽤,全局安装的话,会安装在$PATH下的每个⽬录,不管在什么⽬录下都可以访问该应⽤程序)
2、HOME:指定⽤户的主⼯作⽬录(即⽤户登录到Linux系统时,默认的⽬录)
2.1普通⽤户下的主⼯作⽬录:
2.2root下的主⼯作⽬录:
可以看到,环境变量是⼀个变量,随着⽤户的不同,它的值也就不同。
3、HISTSIZE:保存历史命令记录的条数
在linux中可以查以前输⼊的命令,HISTSIZE这个环境的值就表⽰最多保存的记录的数⽬。
可以看到,上⾯显⽰能够保存1000条。
4、LOGNAME:显⽰当前⽤户的登录名
我是⽤admin这个⽤户登录的。
可以看到,在root权限下仍然是显⽰登录⽤户是admin。
5、HOSTNAME:指主机的名字,应⽤程序要是⽤到主机名的话就是从这个变量中获取的。
可以看到,我的主机的名字是bogon。
6、SHELL:指当前⽤户使⽤的是那种Shell。
可以看到,当前⽤户使⽤的是/bin/bash。
7、LANG/LANGUGE:和语⾔相关的环境变量,使⽤多种语⾔的⽤户可以修改此环境变量。
可以看到,当前环境下使⽤的编码集是UTF-8,它表⽰⽀持中⽂输⼊,因为我装了中⽂输⼊法。
8、MALL:指当前的⽤户邮件存放的⽬录。
在当前⽤户下,邮件存放的⽬录如上图。
9、PS1:命令基本提⽰符,对root是#,对普通⽤户是$。
10、PS2:附属提⽰符,默认是”>”。
注意:上述变量的名字并不是固定的。
(四)、修改和查看环境变量的命令
1、echo:⽤于显⽰某个环境变量的值。
2、env:显⽰所有环境变量。
上⾯只截了⼀部分,可以看到这⾥⾯就有我们之前提到的SHELL。
3、set:显⽰本地定义的shell变量。
这个也只是截取了⼀部分。
4、export:设置⼀个新的环境变量。
4.1注意,⼀般环境变量都⽤⼤写加下划线来命名。
可以看到,当没创建环境变量MY_ENV之前,echo查看的操作失败了。当创建环境变量并给他赋值hello的时候,再次echo查看MY_ENV的话会显⽰出hello。
4.2 可以看到,第四⾏显⽰当前所在的路径。第七⾏显⽰当前⽬录下的所有⽂件。第⼋⾏清除掉PATH这个环境变量。第九⾏查看PATH失败。第⼗⼀⾏在ls的话也会失败,这时因为PATH这个环境变量没有了,
系统这不到这个⽬录,所以执⾏失败。第⼗三⾏⼜将PATH恢复回来。第⼗五⾏ls就会成功了,因为这时候PATH中有/home/admin这个⽬录了。
5、unset:清除环境变量
紧接着上⾯,⼜将MY_ENV清除掉了,这时候再echo的话⼜会失败。
6、readonly:设置只读环境变量
创建⼀个只读的环境变量MY_ENV,不能再对它进⾏修改了。因为这是⼀个临时性的环境变量,所以在⽤户退出登录以后会⾃动失效。
(五)、存放环境变量的⽂件
我们知道,在linux中⼀切皆⽂件。所以环境变量也是存放在⽂件中的。linux中有很多记载环境变量的⽂件,他们是按照⼀定顺序被系统读⼊的。
1、/etc/profile:
这个⽂件是每个⽤户登录时都会运⾏的环境变量设置,当⽤户第⼀次登录时该⽂件被执⾏,并从/ect/profile.d⽬录的配置⽂件中搜索shell的设置。这个⽂件的作⽤就是当⽤户登录的时候⽤于获取系统的环境变量,只在登陆的时候获取⼀次。
2、/ect/bashrc:
在执⾏完/etc/profile内容后,如果⽤户运⾏bash shell的话,则就执⾏这个⽂件。当每次⼀个新的bash shell被打开时,该⽂件被读取。所以,如果想每打开⼀个bash都执⾏某些操作,就可以在这个⽂件⾥⾯设置。
3、~/.bash_profile:
每个⽤户都可以使⽤该⽂件输⼊⾃⼰专⽤的shell信息,当⽤户登录时,该⽂件仅仅被执⾏⼀次。默认情况下,他设置⼀些环境变量,执⾏⽤户的.bashrc⽂件。单个⽤户对于此⽂件的修改只会影响到他以后的每⼀次登录。
5、~/.bashrc:
该⽂件只包含专⽤于你的bash信息,当你登录时以及每次打开新的shell时,该⽂件就会⾃动被读取。
6、~/.bash_logout:
每次在退出shell的时候会执⾏该⽂件。它提供了定制⽤户环境的功能,⽐如删除账号内的临时⽂件等命令就可以放在bash_logout⽂件内。如果这个⽂件不存在的话则就执⾏其他的命令。
总结:
这些⽂件都是为了为⽤户配置环境变量提供的。可以看到/ect/profile就相当于构造函数,~/.bash_logout就相当于析构函数。
参考/转载: