Skip to content

Latest commit

 

History

History
567 lines (384 loc) · 19.7 KB

准备基本环境.md

File metadata and controls

567 lines (384 loc) · 19.7 KB

准备基本环境

建议使用Ubuntu 12.10 ,书中 Ubuntu 11.10(11是奇数)非乌班图长期支持LST版本,目前2020年已经out了,就连Ubuntu 12.101都out了,但为什么还用12.10,如果你用最新的Ubuntu 20.04的话,你得有能力解决各种报错问题,多数跟编译环境有关

20190910_173019_26

ubuntu 12.10 x86安装

http://old-releases.ubuntu.com/releases/12.10/

下载链接:http://old-releases.ubuntu.com/releases/12.10/ubuntu-12.10-desktop-i386.iso

强烈建议使用 ubuntu-12.10-desktop-i386.iso 系统镜像,其他镜像容易造成编译出错等问题。 所使用的源码其实也不完善,但是高版本编译器容易检测出问题。

VMware创建虚拟机,强烈推荐使用SATA磁盘,不要使用默认SCSI磁盘

20190910_174008_99

20190910_174106_34

20190910_174142_13

20190910_174214_53

一定要选择*其它选项**,也就是手动分区。

1537096913723.png

1537096884171.png

1537096975978.png

1537097000834.png

1537097057980.png

20190910_174305_26

  • 建议两个分区,一个根分区,一个无挂载点ext类型分区。至于swap分区,只有用到的时候用文件搞一个就行,不需要创建。
  • swap分区如果给内存足够没多大必要,但是有些程序就只会死皮赖脸要swap分区才行,为了省麻烦
  • 不需要开启逻辑卷,lvm毕竟需要驱动支持,后期可以玩玩,新手稳妥点弄点基础的

20190910_174716_20

20190910_174813_98

20190910_174851_81

20190910_180536_88

  • 虚拟机记得做快照还原点,失误操作的时候可以快速还原。

20200204_101640_82

20200204_101704_63

其他Ubuntu碰到的问题

  • 不建议使用其他 Ubuntu 发行版,尤其那种非长期支持TLS,非 TLS 国内源不一定有,国外源速度感人,还有编译不通过等尴尬问题
  • 这个版本gcc还是存在许多漏洞,但是刚好这个特定发行版妥妥支持,不会报错。如果你想采坑,去吧~

1537274501823.png

apt源

  • 由于版本太老,国内的所有源站点都不支持该版本
  • Ubuntu 提供了一个站点作为老版本 Ubuntu 更新源
  • 12.10 版本代号 quantal

http://old-releases.ubuntu.com/ubuntu/

修改/etc/apt/sources.list

deb http://old-releases.ubuntu.com/ubuntu/ quantal-updates main restricted
deb-src http://old-releases.ubuntu.com/ubuntu/ quantal-updates main restricted

修改之后更新apt源数据

sudo apt-get clean all
sudo apt-get clean
sudo apt-get update

修改root密码

20190910_180621_00

20190910_175944_48

切换到root,修改root密码

安装openssh-server

20190910_190225_32

sudo apt-get update -y
sudo apt-get install openssh-server -y

修改sshd配置,允许root登录。。不过Ubuntu这个版本不需要修改

20190910_180353_69

默认允许root登录(不建议默认root登陆,新建一个vita普通用户)。xshell登录搞起耍~~

20190910_180439_54

adduser vita

修改/etc/sudoers配置,添加vita用户的sudo执行权限

sudo vim /etc/sudoers

复制root所在行,修改为vita**(极端粗暴方式)**

20200204_103427_90

软件安装

1537100506601.png

sudo apt-get install -y libncurses5-dev  xserver-xephyr libgtk-3-dev \
             libgmp-dev libmpc-dev libmpfr-dev   \
             lrzsz screen gawk libtool screen ccache \
             xorg-dev xserver-xephyr openssh-server libncurses5-dev build-essential \
             texinfo autoconf tree g++ \
             m4 gcc-multilib htop libtool vim vim-gtk

启用自动登录

20200204_102123_48

我创建的是vita用户,默认配置登陆vita用户即可

20200204_103041_72

20190910_185832_17

配置好重启就自动登陆了。解锁(Unlock from Launcher)掉左侧栏一些无用(为什么Ubuntu要放亚马逊的软链?)应用,清清爽爽

20200204_103637_39

设置锁屏时间

默认十分钟,调整为never

1605925224207

1605925240580

挂载实验分区

20190910_185913_40

20190910_185956_82

20200204_103812_49

修改/etc/fstab,重启发现/dev/sda2自动挂载了

20190910_190152_15

虚拟机网络配置

  • 直接用 VMware NAT 模式就可以了。桥接模式需要宿主机所处网络环境有 DHCP ,酱紫虚拟机可以获得与宿主机同网段 IP 。有 IP ,虚拟机和宿主机的通信基本保障了(特殊情况除外)。
  • scp 拷贝文件夹记得 -r 参数哦,端口号用 -P 参数哦
  • lrzsz 拖拽文件传输,仅单文件,不支持文件夹

20190910_190308_56

虚拟机增强模式

20190910_190552_62

  • 增强模式其实就是在虚拟机内部安装虚拟机监视器的工具,视情况而定添加
  • VMware 添加工具也蛮方便。。不是我嫌弃 VirtualBox ,做的还是比较搓的。。

20190910_190657_59

  • 安装工具会以光盘形式呈现在虚拟机中,运行脚本执行,重启即可。没啥套路。
  • 然而,我并不想装。。为嘛?装个lrzsz就行了,或者xftp,或者scp

安装lrzsz工具

20190910_191907_18

终端环境下文件传输工具(不支持文件夹,要拷贝文件夹选用xftp)

ssh工具xshell和xftp

20190910_191443_90

https://www.52pojie.cn/thread-952809-1-1.html

下载:https://pan.baidu.com/s/1CcraiX21WbQ9Gk3cV0jsnQ

另安装前说的是要修改hosts文件,将下面的5行信息添加至最下面
127.0.0.1 transact.netsarang.com
127.0.0.1 update.netsarang.com
127.0.0.1 www.netsarang.com
127.0.0.1 www.netsarang.co.kr
127.0.0.1 sales.netsarang.com

Xshell-5.0.1339  :181226-111351-999033
Xftp 5  :181227-114744-999004
Xftp 6   : 190515-114597-999964
Xshell-6.0.0109  :181226-111725-999177
Xshell 6  :181226-111725-999177
Xshell 6   :  190514-111553-999041
XshellPlus-6.0.0011  :181226-117860-999055
XmanagerPowerSuite-6.0.0011  :181226-116119-999510

20190910_192127_60

  • 文件夹拷贝
  • 断点续传

虚拟机安装桌面调试环境Xephyr

Xephyr is display server software implementing the X11 display server protocol based on KDrive which targets a window on a host X Server as its framebuffer. It is written by Matthew Allum. Xephyr is an X-on-X implementation and runs on X.Org Server and can work with Glamor.[2] Future versions could make use of libinput.[citation needed] Replacing Xephyr with the xf86-video-dummy and xf86-video-nested drivers in the normal X.Org server is being considered as part of X11R7.8.[3]

20200204_105104_77

  • 安装过程
sudo apt-get install -y xserver-xephyr xorg-dev libgtk-3-dev

使用方法:

  1. 创建一个桌面
  2. 配置当前环境显示桌面(相当于切换信号)
  3. 当前环境执行GUI应用
Xephyr -ac -screen 1024x768 -br -reset -terminate 2> /dev/null :1 & 
-ac disables host-based access control mechanisms.(暂时不懂)
-screen 1024x768 分辨率
-br 背景设置成黑色
-reset -terminate 确保当最后一个client关闭时Xephyr自动关闭?
2> /dev/null 标准出错 重定向
:displaynumber:screennumber X server运行是需要一个displaynumber,默认是0,display是显示器,screen是屏幕,一个显示器可以有N多个屏幕
& 后台运行

(Xephyr命令中X是大写) 启动X Server的时候可以指定display参数,因为可以省略掉hostname和screen_number,所以可以用:0,:1这样的格式来指定display

  • 分三层,第一层是主机名,第二层是显示器,一个显示器可以有多个屏幕(分屏),但其实一般只用一个屏幕,所以分屏也可以忽略

  • hostname:D.S表示主机主机名hostname中显示器D上的屏幕S;此显示器的X服务器正在侦听TCP端口6000 + D.

  • host/unix:D.S表示主机主机D的屏幕S;此显示的X服务器正在UNIX域套接字/tmp/.X11-unix/XD中侦听(因此只能从主机访问)。

  • :D.S等同于host /unix:D.S,其中host是本地主机名。

  • :0.0表示我们正在讨论连接到本地主机中第一个显示器的第一个屏幕

image-20201121105734122

image-20201121105808332

image-20201121110318528

经过测试发现屏幕默认0才行,如果改成其他值,会报错。其他屏幕应该是0屏幕的儿子吧,没有老子就没有儿子

记住这三个等级

地址:显示器:屏幕

如何在终端中执行GUI应用在:0屏幕显示?

export DISPLAY=:0

终端中配置环境变量DISPLAY后,执行GUI应用即可

编译winman测试图形界面

20190910_192550_78

在source文件夹下有winman源码。解压,配置出错,安装对应包,编译

20190910_193056_56

20190910_193040_64

20190910_193003_68

20190910_193133_81

20190910_193201_79

src目录下就有二进制可执行的winman

20190910_193253_16

编译taskbar图形界面程序

20190910_194053_19

配置出错,安装依赖

20190910_194144_17

20190910_194456_63

20190910_194510_63

20190910_194607_28

编译desktop桌面程序

20190910_194319_86

同taskbar一样,配置出错,也是安装依赖包就可以了

sudo apt-get install  libgtk-3-dev -y

20190910_194354_57

Xephyr创建桌面窗口-服务器端

20190910_193459_94

20190910_193512_60

向Xephyr桌面窗口添加图形界面程序

首先添加winman,如何添加?

20190910_193554_86

20190910_193914_22

尴尬,漆黑一片。。为嘛?因为背景四黑色滴。。。

正确打开姿势,首先开服务器端,然后开桌面管理器,然后开任务栏,然后开桌面。桌面管理器使用来管理其他界面的。。能不是黑色?

20190910_195603_34

先开winman,在taskbar,显示如下

20190910_195920_88

最后开desktop就是这样了

20190910_195941_48

再开一个终端,gedit搞起

20190910_200044_61

20190910_200055_48

结束桌面窗口的时候,其他桌面程序也会退出

20190910_200205_66

DISPLAY参数的重要意义

20190910_200309_43

如果你指定了DISPLAY,然后又想开桌面窗口,是不得行滴。为嘛?

DISPLAY环境变量格式如下:

host:DisplayNumA.ScreenNumB
  • host指Xserver所在的主机主机名或者ip地址, 图形将显示在这一机器上, 可以是启动了图形界面的Linux/Unix机器, 也可以是安装了Exceed, X-Deep/32等Windows平台运行的Xserver的Windows机器. 假如Host为空, 则表示Xserver运行于本机, 并且图形程序(Xclient)使用unix socket方式连接到Xserver, 而不是TCP方式
  • DisplayNumA,使用TCP方式连接时,为连接的端口减去6000的值, 假如NumA为0, 则表示连接到6000端口; 使用unix socket方式连接时NumA则表示连接的unix socket的路径, 假如为0, 则表示连接到/tmp/.X11-unix/X0 .
  • ScreenNumB则几乎总是0,默认就是第一个屏幕,默认不能设置为其他屏幕,除非屏幕0的引用扩展屏幕了

X11相关程序

usr/bin/X11各个程序中文

animate 输出图形结果
bitmap
bmtoa
bounce 输出X屏幕保存结果
display 浏览编辑image magick图像
editres 编辑X11资源
flsfonts 显示X字体
fly8 模仿X11飞行
fsinfo 提供X11字体服务功能
gears 显示X11屏幕保护程序
gedit 提供一个简单的GNOME文本编辑器
gphoto 一个数字式相机和编辑图像
gv 浏览和打印postscrip文件
ico 显示X图表的编辑示范
import 获得一个邻近或远程的系统显示
kmahjongg 一种游戏
kscd KDE CD
lxdoom 为X系统提供一个DOOM端口
maze 给出如何产生或解决迷宫问题的示范
mcam 为ZORA WEB样板提供一个X11终端
mcookie 为xauth产生magic cookie
mkfontdir 在地址簿里为X字体文件建立一个索引
oclock 显示X的旋转时钟
pbmtoxbm 将简捷方式的位图文件转化为X11位图文件
ppmtopuzz 将简捷方式pixmap的位图文件转化为X11的“迷惑性“文件
ppmtoxpm 将简捷方式pixmap的位图文件转化为X11的xpm文件
rclock 显示X11下的幼体适合闹铃的钟表
showfont 提供X11系统下的垃圾站的功能
whowrgb 显示X11的颜色盘
startx
viewres 为X提供图形分类浏览器
x11perf 测试X11的服务器的性能
x11perfcomp 比较X11服务器的工作情况
xaumix 为X11系统运行aumix audio mixer wrapper
xauth 提供X系统的官方文件
xbiff 为X系统提供信箱标志客户程序
xbmtopbm 将X11或X10的位图文件转换为简捷方式下的位图文件
xboing 提供高级的X突发游戏
xcalc 显示计算器功能
xcam 为SANE提供图形相机功能
xclipboard 提供剪贴板功能
xclock 显示类推或数字钟表
xcmap 提供被隐藏的颜色板
xconsole 为X的控制台信息提供系统管理器
xcutsel 在中断缓冲和选择项之间提供一个内部的转换
xditview 显示ditroff的输出结果
xdm 运行X系统显示信息功能
xdpyinfo 提供X系统显示信息功能
xearth 在核心窗口中显示有颜色的平面的可旋转的图像
xedit 为X系统提供简单的文本编辑器
xev 显示Xevents文件的组成部分
xeyes 战士如何在没有鼠标的情况下如何操作
xf86cfg 为xfree86提供图形编辑工具
xf86config 产生xfree86的config文件
xfd 显示X字体的所有特点
xfinproxy 设置代理服务器
xflame 绘制一个火焰燃烧型的图
xfontsel 设置X11字体名称的点击方式
xfs 运行X字体服务器
xfwp 提供X系统的防火墙设置
xgalaga 运行X系统的拱廊游戏
xgamma 改变XFree86的管理灰度系数设置
xgc 绘图示范
xhost 为X系统提供路径控制程序
xieperf 运行XIE服务器扩展测试和样板程序
xinit 开始X窗口系统
xjack 先是一种所有程序都在运行俚不显示的屏幕保护系统
xjewel 提供一种典型的falling-block X游戏
xkbcomp 编辑XKB的键盘描述装置
xkbevd 运行XKB的事务damon
xkbprint 打印XKB键盘显示装置
xkill 通过客户程序的资源来kill它自己
xkobo 启动一个video-oriented游戏
xli 把现状如X11窗口中或者装在一个入口根目录下
xlincity 运行LinCity模仿器
xload 显示普通的装载系统
xlock 为近距离的X显示设定密码
xlogo 显示X窗口系统的标识语
xlsclients 列出要求显示的客户程序的申请
xlsfonts 显示服务器字体列表
xmag 放大屏幕的某个部分
xmahjongg 运行一个典型的mah-jongg游戏
xman 显示手册的页数
xmatrix 提供一个模仿计算机显示的屏幕保护设置
xmessage 显示一个留言设置
xmh 从X界面到信息处理器的信件传送功能
xmixer 提供一个音频混合器
xmkmf 从lmakefile产生一个makefile
xmodmap 修改键盘和光标的按钮
xon 在远程的计算机上运行X程序
xosview 运行图形系统装载客户程序
xpat2 提供一种纸牌游戏
xplaycd 运行简单的CD播放器
xpmtoppm 将X11pixmap文件转换为简捷方式下的pixmap文件
xprop 显示X系统的特点
xrdb 提供X系统的服务器资源的有关资料
xrefresh 更新全部或部分屏幕
xroger 显示X系统屏幕保护的内容
xsane 为SANE运行扫描器
xcanimage 扫描X11图像
xset 用户可以根据自己的喜好设置外观
xsetmode 设置X系统输入装置的形式
xsetpointer 设置X系统输入装置作为主要的光标指示
xsetroot 设置主窗口参数
xsm 管理X系统管理对话
xstdcmp 显示标准的X系统的颜色板
xsublim 显示X系统的屏幕保护装置
xteevee 显示模仿各种各样的TV程序的屏幕保护装置
xterm 运行终端模仿装置
xv 浏览转换和编辑X11图像
xvidtune xfree86的调音装置
xvminitoppm 将XV“thumbnail"图形转换为PPM的格式
xvpictoppm 将XV“thumbnail"文件转换为PPM的格式
xwd 获得X11的X显示
xwdtopnm 将X11或者X10垃圾文件转换为简捷方式
xwininfo 显示窗口信息
xwud 显示一个xwd所获得的信息

参考博客