关于ubuntu软件安装理解那些事

项目整理:1.source.list的理解
/etc/apt/sources.list讲解:保存了ubuntu软件更新的源服务器的地址。
和sources.list功能一样的是/etc/apt/sources.list.d/*.list(*代表一个文件名,只能由字母、数字、下划线、英文句号组成)。sources.list.d目录下的*.list文件为在单独文件中写入源的地址提供了一种方式,通常用来安装第三方的软件
讲sources.list文件打开后可以看到类似下面的内容
deb http://archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse

每一行的开头是deb或者deb-src,分别表示直接通过.deb文件进行安装和通过源文件的方式进行安装。
deb或者deb-src字段之后,是一段URL,之后是五个用空格隔开的字符串,分别对应相应的目录结构。
在浏览器中输入http://archive.ubuntu.com/ubuntu/,并进入dists目录,可以发现有5个目录和前述sources.list文件中的第三列字段相对应。任选其中一个目录进入,可以看到和sources.list后四列相对应的目录结构。

2.源的选择:ubuntu官方有自身的软件源,直接从官方的软件源获取数据的速度比较慢。而通过国内的一些的源的镜像进行更新一般能够获得比官方源更快的速度,不过不同国内的源的下载速度也会不一样。
这里 给出了较为详细的ubuntu软件源列表,个人现在觉得选取ubuntu软件源的方法是首先选择位于相同地区的源,然后进行ping操作,时延不是太高即可。对比aliyun、sohu、ubuntu官方ping的数据,可以发现aliyun的源在时延上表现最好。
ping archive.ubuntu.com
ping mirrors.aliyun.com
ping mirrors.sohu.com    
根据源服务器响应时间更换相应的源(http://wiki.ubuntu.org.cn/源列表)
该网站也有停止维护的一些版本,更换源只需要讲之前的sources.list文件内容进行全部替换即可例如替换14.04ubuntu系统源为阿里云的14.04
deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
##测试版源
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
# 源码
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse

3. sudo apt-get install 404错误
可能是源服务器的文件已经更改位置了,登陆对应的源服务器找到对应的服务,将该位置在sources.list中进行更改即可。

项目整理:2.ppa的理解
, ppa类似一些源服务器,常用的源服务器只有一些我们常用的软件,对于例如mongo数据库这样的软件需要在使用mongo数据提供的源来下载
  sudo add-apt-repository ppa: xxx/ppa    (就是讲某个源放在/etc/apt/sources.list.d)
  这句话的意思是获取最新的个人软件包档案源,将其添加至当前apt库中,并自动导入公钥。
PPA 全称为 Personal Package Archives(个人软件包档案),是 Ubuntu Launchpad 网站提供的一项服务,当然不仅限于 Launchpad 。它允许个人用户上传软件源代码,通过 Launchpad 进行编译并发布为二进制软件包
,作为 apt/新的源供其他用户下载和更新。在Launchpad网站上的每一个用户和团队都可以拥有一个或多个PPA。
通常 PPA 源里的软件是官方源里没有的,或者是最新版本的软件。相对于通过 Deb 包安装来说,使用 PPA 的好处是,一旦软件有更新,通过 sudo apt-get upgrade 这样命令就可以直接升级到新版本。
通常我们可以通过 Google 来搜索一些常用软件的 PPA 源,通常的搜索方法是软件名称关键字 + PPA ,或者也可直接到 launchpad.net 上去搜索,搜索到后我们就可以直接用 sudo apt-add-repository 命令把 PPA 源添加到 Source list 中了。
如果是第三网站源会添加到/etc/apt/sources.list.d目录下的某个文件
  例如:(https://launchpad.net/上这个网站查看需要那个软件的源例如火狐浏览器源https://launchpad.net/~ubuntu-mozilla-daily/+archive/ppa, 这个页面会有许多火狐的版本,根据需求选择)
sudo apt-add-repository ppa:ubuntu-mozilla-daily/ppa
sudo apt-get update
sudo apt-get install firefox-4.0

项目整理:3.update与upgrade的理解
apt-get是某些linux发行版使用的一个“包管理器”(还有别的发行版使用yum等,以及brew等其他平台上的包管理器,工作原理类似)。
包管理器的作用是从源(Source)服务器那里下载最新的软件包列表,然后在你需要安装某个软件包(apt-get install)的时候从列表里面查询这个软件包的版本信息、系统要求、翻译、依赖项(该软件正常运行必须安装的其它软件)
并且添加到同时安装的列表里面,再查询所有安装列表里面的软件包的.deb文件下载地址,最后批量下载,自动分析安装顺序然后安装完成。
但是这个软件包列表是不会被自动下载的,需要用户使用apt-get update更新。这样,apt-get才能知道每个软件包的最新信息,从而正确地下载最新版本的软件。
至于apt-get upgrade,则是对已经安装的软件包本身进行更新的过程。由于确定要更新的软件包需要对本地安装的版本和列表的版本进行比较,所以要在update以后运行这一条。
要求在install操作之前执行update和upgrade,实际上是确保本地软件列表信息和已安装软件均为最新的过程。这样做可以最大限度地确保新安装的软件包正常工作。
一般来说你不更新仓库信息(update), upgrade 就在本地的旧仓库转悠一圈发现并没有要更新的,但实际上本地仓库已经过时了。
一般来说,update和upgrade不需要每次安装软件之前都运行,安装新软件的话一天左右运行一次即可,不安装软件的时候隔十天半个月运行一下来更新软件包,服务器系统如果没有安全性更新就别乱更新了,稳定最重要。
总结来说:
安装新软件使用sudo apt-get update即可。
更新软件需要使用sudo apt-get update(更新仓库信息)sudo apt-get update(更新软件)
安装软件使用sudo apt-get install 软件名

卸载软件 sudo apt-get remove 软件名


项目整理:4.pecl命令
sudo pecl install mongo (安装php对mongo的扩展模块)
PECL 的全称是 The PHP Extension Community Library ,是一个开放的并通过 PEAR(PHP Extension and Application Repository,PHP 扩展和应用仓库)打包格式来打包安装的 PHP 扩展库仓库。
通过 PEAR 的 Package Manager 的安装管理方式,可以对 PECL 模块进行下载和安装

项目整理:5.源码安装软件
1. 第一步:必须先安装相应的软件,即make、GUN编译器GCC(后面会用到这些命令),运行一下命令即可:sudo apt-get install build-essential
1.下载tar包并解压 tar -zxvf xxx.tar.gz
2. cd xxx
3.运行如下三条命令进行软件的配置、编译、安装:
    ./configure (如果文件夹中没有该文件,此步骤可以省略)
    sudo make
    sudo make install
举例php使用源码安装模块memcache
    1. tar zxvf memcache-2.2.5.tgz
    2. cd memcache-2.2.5/
    3. /usr/local/webserver/php/bin/phpize(使用改命令来设置php的扩展模块)
    4.  ./configure –with-php-config=/usr/local/webserver/php/bin/php-config
    5. make
    6. make install
    7. /etc/php5/mods-available文件下创建memcache.ini文件在里面写入:extension=memcache.so

    configure是用来做下面这些事的一个脚本:
    1、用以检查计算机建立包所必须的完整性;
    2、帮助你根据需要改变默认的路径;
    3、用以激活/禁用编译程序中的各种选项;
    4、用以改变程序将要被安装的路径;
        你可以通过执行下面的命令来查看特定configure脚本所提供的选项个功能:
        ./configure --help | less
        例如,默认的configure脚本会指定安装到/usr/local下面,如果你想改变路径,可以执行下面显示的configure脚本命令:
        ./configure --PREFIX=/opt
    如果你真的想从零开始编译,可以认真研读一下README或者INSTALL文件。你会看到需要什么样的软件碎片,比起在包系统中,在这些文件中他们通常有着不一样的名字。
    接下来,可以通过使用apt-cache工具来寻找相应的包。如果你已经通过仓库中编译包,那么还有一个诀窍,就是通过下面的命令来安装包的依赖:
    sudo apt-get build-dep
    这可以确保所有所需的包以来都可以被安装,以期configure不会由于过旧的依赖包而报错,否则你将不得不继续编译相关的依赖。
    寻找并修复configure的故障
    恰巧在下面这几种情况下,configure可能会失败:
    1、编译的时候需要-dev包;
    2、要编译GNOME应用那么需要相应的gnome-level;而编译KDE应用则需要kde-level;
    3、C和C++库的名称总是以lib开头,因此,如果./configure报错说丢失了库foo,那么你需要安装libfoo-dev包;
    4、如果configure说要“X includes”,那么你可能需要安装下面这些包“xlibs-dev,xlibs-static-dev,x-window-system-dev”,注意,有时候,仅仅需要xorg-dev和x-dev就可以了。-Racecar56 Under Jaunty则需要安装xorg-dev和libx11-dev。
    5、查看哪些包被需要的技巧,可以使用auto-apt工具或者apt-file工具(auto-apt可能更快一些):
    sudo apt-get install auto-apt
    sudo auto-apt update
    auto-apt search missing-file.h
    使用auto-file和上面是一样的,如果把auto-file替换成auto-apt!
    6、如果编译软件禁用失败的选项,可以使用./configure –disable-FEATURE选项。
    7、如果你自己没能修复你遇到的问题,你也可以寻求ubuntu官方的帮助哦。
    如果根本不存在configure的文件,那么最好查看一下configure.ac文件(有必要认真阅读一下INSTALL和README文件),如果configure.ac文件存在,那就是开发者忘记创建最终configure文件了,你可以自己创建,不过需要autoconf包:
    sudo apt-get install autoconf
    安装成功之后,键入:autoconf
    如果幸运的话,一个可工作的configure文件应该被创建了。


你可能感兴趣的:(PHP起步)