分类: 嵌入式
2013-05-19 10:32:43
PC主机硬件:
处理器名称 QuadCore Intel Core i5-2300, 3100 MHz (31 x 100)
主板名称 Asus P8P67 LE
显示适配器 NVIDIA GeForce GTX 550 Ti (1024 MB)
3D 加速器 nVIDIA GeForce GTX 550 Ti
显示器 ViewSonic VA2220w [22" LCD] (RCR093583901)
由于PC机的硬件比较新,所以下载最新的Debian 7.0,电脑自身不带光驱,我们可以采用Universal USB Installer从U盘启动安装linux
选择Debian的原因,很多linux发行版都是基于Debian的,例如ubuntu, Linux Mint
debian相对于ubunt更新会慢些,但是debian比ubuntu更稳定,更适用于做服务器。
从官方网站下载并安装Universal-USB-Installer-1.9.3.2
准备debian 7镜像文件debian-7.0.0-i386-netinst.iso
运行Universal-USB-Installer-1.9.3.2.exe,点击“I Agree”进入制作界面。
如上图所示,我们选择Debian Netinst,表示从网络安装debian
点击”Browse”选择我们下载的debian-7.0.0-i386-netinst.iso
以上步骤都完成后,点击“Create”按钮。
出现的第1个提示界面,让你确认所选盘符是你自己的优盘,如果确认直接点“是(Y)”按钮,如果不是就点“否(N)”按钮。
进入正式安装界面,先解开ISO文件
然后会把文件拷贝到U盘,等待文件拷贝完成,u盘就成为Debian启动盘。
1. 安装Debian最小系统
root密码: xxxx
新建普通用户: enzo 密码: xxxx
由于网速原因,我们只安装SSH服务和linux基本工具
2. 安装图形化界面并
安装xorg
root@debian:~# apt-get install xorg
安装gdm(GNOME Display Manager)
root@debian:~# apt-get install gdm3
安装最小化的GNOME桌面环境
root@debian:~# apt-get install gnome-core
安装中文字体支持
root@debian:~# apt-get install ttf-wqy-zenhei
3. 安装配置sudo命令
更改默认编辑器为Vi,debian默认编辑器nano
# update-alternatives --config editor
有 2 个候选项可用于替换 editor (提供 /usr/bin/editor)。
选择 路径 优先级 状态
------------------------------------------------------------
* 0 /bin/nano 40 自动模式
1 /bin/nano 40 手动模式
2 /usr/bin/vim.tiny 10 手动模式
输入数字2,选择vi
# apt-get install sudo
sudo用户不输入密码使用sudo命令,输入#visudo命令,编辑文件
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) NOPASSWD:ALL
将用户添加到sudo组,用户就可以使用sudo命令
# usermod -a -G sudo enzo
# id enzo
uid=1000(enzo) gid=1000(enzo) 组=1000(enzo),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev)
运行sudo apt-get update 成功
参考连接:
1、安装 openssh服务器
sudo apt-get install openssh-server openssh-client
2、创建个人公钥和私钥
在默认用户的主目录路径下,运行以下命令,按照提示创建公钥和私钥
ssh-keygen -t rsa
默认生成2048位,如果需要提高安全级别,也可以通过下面的命令创建公钥和私钥
ssh-keygen -t rsa -b 4096
默认情况下,公钥和私钥会保存在~/.ssh目录下,如下所示:
id_rsa id_rsa.pub known_hosts
3. 安装 git服务器
#apt-get install git git-core
4. 配置 git服务器
创建git服务器管理用户
sudo useradd -m git
sudo passwd git
密码: tdqs
创建git仓库存储目录
sudo mkdir /home/git/repositories
设置git仓库权限
sudo chown git:git /home/git/repositories
sudo chmod 755 /home/git/repositories
初始化全局设置
git config --global user.name "myname"
git config --global user.email "myname@server"
5、安装python的setup tool
sudo apt-get install python-setuptools
6、获取并安装gitosis ,git权限控制工具
cd /tmp
git clone
cd gitosis
sudo python setup.py install
7、配置gitosis
cp ~/.ssh/id_rsa.pub /tmp
sudo -H -u git gitosis-init < /tmp/id_rsa.pub
sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update
8、管理gitosis配置
cd ~
git clone
( YOUR_SERVER可以是你的服务器名称或者ip,我这里的Debian的ip为172.10.16.251)
cd gitosis-admin/
各个用户按照前面提到的办法生成各自的ssh公钥文件后,服务器管理员把所有人的 ssh公钥文件都拿来,拷贝到keydir目录下。
开发主机上传公钥到服务器:
enzo@debian:~$ scp .ssh/id_rsa.pub
加密要拷贝到gitosis-admin/keydir/, 重命名密钥名为enzo@debian.pub
注: 命名需要遵守规则:gitosis中member名称 + .pub,例如enzo@debian.pub
修改gitosis.conf文件,如下所示
[gitosis]
[group gitosis-admin]
writable = gitosis-admin
members = a@server1
[group developers]
writable = helloworld
members = a@server1 b@server2
[group test]
writable = helloworld
members = enzo@debian
这个配置文件表达了如下含义:gitosis-admin组成员有a,该组对gitosis-admin仓库有读写权限; developers组有a,b两个成员,该组对helloworld仓库有读写权限; test组有c一个成员,对helloworld仓库有只读权限。当然目前这些配置文件的修改只是在你的本地,你必须推送到gitserver上才能真正生效。加入新文件、提交并push到git服务器:
git add .
git commit -am "add helloworld project and users"
git remote add origin ssh://git@hostname/helloworld.git
git push origin master
# 在客户端创建项目目录(客户端,当前用户为 XXX )
现在回到开发者客户端,上面创建了一个新项目project1并提交到了git server 。我们这里就创建此项目的信息.注意 项目名称 project1要与gitosis.conf文件配置一致,
$ mkdir /home/用户/helloworld
$ cd /home/用户/helloworld
$ git init
添加新文件a.txt
$ git add . # 新增文件 留意后面有一个点
$ git commit -a -m “初始化项目project1″
# 然后就到把这个项目放到git server服务器上去.
$ git remote add origin ssh://git@xxx:helloworld.git
$ git push origin master
也可以合二为一
$ git push git@xxx:project1.git master
1 .错误提示:fatal: remote origin already exists.
解决办法:
$ git remote rm origin
然后在执行:$ git remote add origin git@github.com:defnngj/hello-world.git 就不会报错误了
2. 在执行
$ git push origin master
错误提示:error:failed to push som refs to.......
解决办法:
$ git pull origin master //先把远程服务器github上面的文件拉先来,再push 上去。
3. git操作需要输入密码
原因
公密未找到
解决
上传id_pub.rsa到keydir并改为'gitosis帐号.pub'形式,如miao.pub。扩展名.pub不可省略
4. ERROR:gitosis.serve.main:Repository read access denied
原因
gitosis.conf中的members与keydir中的用户名不一致,如gitosis中的members = foo@bar,但keydir中的公密名却叫foo.pub
解决
使keydir的名称与gitosis中members所指的名称一致。
改为members = foo 或 公密名称改为foo@bar.pub
添加linux内核到git服务器
1. 服务器端
enzo@GitSer:~/gitosis-admin$ cat gitosis.conf
[gitosis]
[group gitosis-admin]
members = enzo@GitSer
writable = gitosis-admin
[group gittest]
writable = gittest
members = enzo@GitSer enzo@debian
[group linux]
writable = linux
members = enzo@GitSer enzo@debian
#git remote add origin git@GitSer:gitosis-admin
#git push origin master
2.客户端
#git push git@172.16.10.251:linux.git master
1. scp命令使用
复制文件:
(1)将本地文件拷贝到远程
scp 文件名 用户名@计算机IP或者计算机名称:远程路径
(2)从远程将文件拷回本地
scp 用户名@计算机IP或者计算机名称:文件名 本地路径
复制目录:
(1)将本地目录拷贝到远程
scp -r 目录名 用户名@计算机IP或者计算机名称:远程路径
(2)从远程将目录拷回本地
scp -r 用户名@计算机IP或者计算机名称:目录名 本地路径
2.更换debian默认shell为bash
Debian安装后默认的shell为dash,原因dash 更小,且运行更快,还与 POSIX 兼容。
但问题是目前网上有大片的用户由于 shell 的更换而致使脚本出错,毕竟现有的很多脚本都不是 100% POSIX 兼容。如需将默认的 shell 改回 bash,可以在执行 sudo dpkg-reconfigure dash 后,选择 no。
3.安装2.6内核交叉编译器
交叉编译器被放在/home/enzo/tools目录下
enzo@GitSer:~/tools$ ls
arm-2010.09-50-arm-none-linux-gnueabi.bin cross-2.95.3.tar.bz2
切换到root用户,安装
#sudo su
#./arm-2010.09-50-arm-none-linux-gnueabi.bin
4.安装2.4内核交叉编译器
建立文件夹/usr/local/arm,最好安装在此目录下,以防以后编译代码出问题
#mkdir /usr/local/arm
# tar jxvf cross-2.95.3.tar.bz2 -C /usr/local/arm/
1. 将交叉编译环境路径添加到系统PATH
if [ "`id -u`" -eq 0 ]; then
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else
PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/local/CodeSourcery/Sourcery_G++_Lite/bin:/usr/local/arm/2.95.3/bin"
fi
7. 检查环境变量是否设置成功:
i)检查2.6编译器
enzo@GitSer:~$ arm-none-linux-gnueabi-gcc -v
Using built-in specs.
COLLECT_GCC=arm-none-linux-gnueabi-gcc
COLLECT_LTO_WRAPPER=/usr/local/CodeSourcery/Sourcery_G++_Lite/bin/../libexec/gcc/arm-none-linux-gnueabi/4.5.1/lto-wrapper
Target: arm-none-linux-gnueabi
Configured with:
……
……
gcc version 4.5.1 (Sourcery G++ Lite 2010.09-50)
ii)检查2.4编译器
enzo@GitSer:~$ arm-linux-gcc -v
Reading specs from /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/specs
gcc version 2.95.3 20010315 (release)