当前位置: 首页 > 工具软件 > iTalc > 使用案例 >

iTALC 网络教室平台 编译及使用简介

崔宇
2023-12-01
今天试着基于  iThinkX 平台编译了一份 iTALC 网络教室平台,大概过程如下:


准备工作,解决依赖:


我 先下了一份git 版的,用的是 cmake 来编译的,结果,发现,这个软件声称需要 Linux-PAM 的支持,但是在官方说明文档中并没提到这个支持,于是,我就试着下了一份 Linux-PAM ,经过几次编译调试,最终用的以下配置命令通过 Linux-PAM 的编译:
程序代码:  [选择]
cd /tmp
wget http://ftp.de.debian.org/debian/pool/main/p/pam/pam_1.1.1.orig.tar.gz
tar zxvf pam_1.1.1.orig.tar.gz
cd Linux-PAM-1.1.1
./configure \
--prefix=/usr \
--bindir=/usr/bin \
--sbindir=/usr/sbin \
--docdir=/usr/doc \
--mandir=/usr/man \
--libdir=/usr/lib \
--libexecdir=/usr/libexec \
--includedir=/usr/include/pam \
--infodir=/usr/info \
--sysconfdir=/etc/pam \
--build=i486-slackware-linux \
--with-xauth

make

make install

make DESTDIR=/tmp/Linux-PAM-1.1.1-iThinkX install

cd /usr/include
ln -sf pam securty

cd /tmp/Linux-PAM-1.1.1-iThinkX/usr/include/
ln -sf pam securty

cd /tmp
mksquashfs Linux-PAM-1.1.1-iThinkX Linux-PAM-1.1.1-iThinkX.xzm -b 512k -Xbcj x86


--includedir=/usr/include/pam 这行犹其要注意,如果不是指定这个地方,编译 iTALC 时,还是会报告找不到 pam 组件,上面工作做完后,就可以开始编译 iTALC 了


编译 iTALC :


经过实际测试,我的运气不佳,事实证明,官方今天的 git 版源码有严重问题,所以,没办法,又跑到官方下了一份正式发行版来编译:

程序代码:  [选择]
cd /tmp
wget http://ncu.dl.sourceforge.net/project/italc/italc/1.0.13/italc-1.0.13.tar.bz2
tar jxvf italc-1.0.13.tar.bz2
cd italc-1.0.13
./configure \
--prefix=/usr \
--bindir=/usr/bin \
--sbindir=/usr/sbin \
--docdir=/usr/doc \
--mandir=/usr/man \
--libdir=/usr/lib \
--libexecdir=/usr/libexec \
--includedir=/usr/include \
--infodir=/usr/info \
--sysconfdir=/etc/italc \
--build=i486-slackware-linux \
--with-linux \
--with-x

make

make install

make DESTDIR=/tmp/italc-1.0.13-iThinkX install

cd /tmp
mksquashfs italc-1.0.13-iThinkX italc-1.0.13-iThinkX.xzm -b 512k -Xbcj x86

OK,至此,完成了 iTALC 的安装部份。


使用:


其实我试着用了一下,发现,这个其实就是一个远程终端软件,用法上大概是这样的:

程序分为两个可执行文件,分别是 ica 和 italc ,其中,ica 为客户端运行的, italc 为主控端运行

要想要启用客户端,直接运行是不行的,因为 iTALC 要求有配对密钥才能执行,所以,首先要生成密钥,iTALC 默认所有的密钥都存放在下面这两个地方:

程序代码:  [选择]
/etc/italc/keys/private/{username}/key
/etc/italc/keys/public/{username}/key

请注意!一开始我也没搞明白,后来测试了才知道,这最后一个 key 就是 key 文件名。
另外 {username} 就是创建KEY时的用户名。
多的不说了,下面是创建KEY的命令:
比如说,我创建一个名叫 teacher 的用户
程序代码:  [选择]
mkdir -p /etc/italc/keys/{private,public}/teacher
ica -role teacher -createkeypair /etc/italc/keys/private/teacher/key /etc/italc/keys/public/teacher/key

这样,就同时建立了 teacher 的私有key和公共key,是不是很麻烦,呵呵,别急,最后我写个脚本给你。

不过官方文档说明中,似乎比我的简单多了,只不过我是保守派,呵呵,所以写得比较明确。官方文档中写,只需要这样执行就可以创建KEY了。

程序代码:  [选择]
ica -role teacher -createkeypair

不过我是看官方 man 手册看来的,所以写成了上面那种麻烦的写法。

创建完KEY后,就可以启动客户端程序了,启动方法如下:

比如,我启动 teacher 这个用户的客户端:

程序代码:  [选择]
ica -role teacher

呵呵,简单吧,启动起来以后,就可以在另一台机子上执行 italc 程序了,启动命令如下:

程序代码:  [选择]
italc -rctrl 客户机IP地址

这时,你就可以对客户机进行操作了,有点麻烦吧。没关系,官方给了我们一个随X桌面自动启动的方法:

引用
On clients you have to make sure that the iTALC-Client-Application (ICA),
provided by package italc, is being started when either X is started or a
user logs on.
There're several methods for doing this (this is why it's not done
automatically when installing the package):

1. add the appropriate command ("ica &") to /etc/X11/xinit/xinitrc.
   This method isn't recommend, because then ICA runs with the user's
   privileges -> the user is able to kill ICA and get out of teacher's
   control.

2. add "ica &" to /etc/X11/xdm/Xsetup. On some systems, this
   doesn't take effect, so either edit /etc/kde3/kdm/Xsetup or
   /etc/X11/gdm/Xsetup

You can easily test whether all is fine by running telnet on port 5900 of the
according compter.

example:

telnet 192.168.1.2 5900

呵呵,iThinkX 系统都用的是KDE,所以上面的东东只要添加到这个文件就行了:
程序代码:  [选择]
/etc/X11/xinit/xinitrc.kde

在这个文件最后面添加一行
程序代码:  [选择]
ica &

我想,它反正是要求能随系统启动嘛,用户模式也可以呀,所以,可以考虑在 /root/.kde/Autostart 中添加启动脚本嘛。

脚本内容可以这样写,比如,脚本名叫 ica-start
ica-start
程序代码:  [选择]
#!/bin/sh
/usr/bin/ica &

够简单吧。

完成!


最后建议写个KEY脚本


比如,脚本名叫 ica-keymk

程序代码:  [选择]
touch /usr/bin/ica-keymk
vi /usr/bin/ica-keymk

脚本内容:
程序代码:  [选择]
#!/bin/sh
KeyUser="$1"
if [ ! "$KeyUser" = "" ]; then
    mkdir -p /etc/italc/keys/{private,public}/"$KeyUser"
    ica -role "$KeyUser" -createkeypair /etc/italc/keys/private/"$KeyUser"/key /etc/italc/keys/public/"$KeyUser"/key
    echo " The [$KeyUser] users key create successful"
else
    echo " Sorry! you must be type a username follow the command "
    echo " Useage: $0 username "
fi

写完后,存盘退出然后:

程序代码:  [选择]
chmod +x /usr/bin/ica-keymk

脚本的用法就简单了,不用写一长串命令了,只要写如下格式就行,比如创建 teacher 的KEY:

程序代码:  [选择]
ica-keymk teacher

OK完成,KEY就创建完毕了。简单吧


写得累死我了!!!


补充一下猜测


由于没有环境测试,只有一台机器,所以,不是很确定这个所谓的KEY和用户的关系,但是我看了一下官方文档,我是这样猜测的:

key 与当前客户机的登录用户名对应,所以,用户名是啥,KEY名称也就是啥,这样的话,在同一台机器上,学生账号与教师账号就可以分开了,所以官方说明文档中有比较明确的要求:

要求教师的KEY账号设为本账号可操作,其它账号则没有权限。

所以,官方说明文档中,客户机的启动方式也较为简单,无需指定用哪个 role 来启动,只需简单地启动 ica 即可:

程序代码:  [选择]
ica &

呵呵,以上仅为猜测,没有环境测试,仅供参考!
 类似资料: