1 基本知识
树莓派A20目前使用的是linaro ubuntu系统,所以包管理机制都是按照ubuntu方式管理的。
目前需要了解以下基础知识:
- ls /var/cache/apt/archives/
该命令能显示出在系统中存在的所有deb包。
- dpkg -l
该命令能查看系统已经安装的deb包。
- dpkg -i xxx.deb(deb包名)
该命令能安装deb包
如安装tftp包,则如下图所示:
- apt-get remove 软件 与 dpkg -r 软件
使用apt-get remove 软件 命令,可以卸载掉安装的包文件。例如卸载tftp。可以使用apt-get remove tftp。如下图所示:
也可以使用dpkg -r 软件 命令。不过一般建议使用apt-get remove软件这个方法,卸载的比较干净。
- dpkg -L 软件
该命令可用来查看安装的软件,相关文件放在哪些目录下。
例如,安装tftp后,文件分布的目录如下图所示:
- dpkg -x xx.deb 解压路径
也就是将xx.deb文件解压到'解压路径'位置上。
2 应用
2.1 tftp
现在我们需要做这样的一个应用。也就是,在树莓派A20板子上。目前已经有了文件系统,但是我们需要添加tftp等相关内容到A20板子上,这样每次烧写一个新的树莓派A20板子,就有了tftp命令。
首先,需要关注一个源:http://ports.ubuntu.com/ubuntu-ports/
然后要关注在A20上的一个文件地址:
root@marsboard:/var/cache/apt/archives# cat /etc/apt/sources.list
deb http://ports.ubuntu.com/ubuntu-ports/ trusty main universe
deb-src http://ports.ubuntu.com/ubuntu-ports/ trusty main universe
root@marsboard:/var/cache/apt/archives#
我们在树莓派上针对tftp将deb包文件进行解压。
$ dpkg -x tftp_0.17-18ubuntu2_armhf.deb /root/wit
$ ls /root/wit
usr
$ tar -czvf tftp.tar.gz usr
usr/
usr/share/
usr/share/man/
usr/share/man/man1/
usr/share/man/man1/tftp.1.gz
usr/share/doc/
usr/share/doc/tftp/
usr/share/doc/tftp/copyright
usr/share/doc/tftp/BUGS
usr/share/doc/tftp/changelog.Debian.gz
usr/share/doc/tftp/README.Debian
usr/bin/
usr/bin/tftp
$
之后,我们将tftp.tar.gz解压到文件系统的usr目录下即可。然后将文件系统烧写到树莓派A20上,就可以执行tftp命令了。
2.2 zip
如下图所示,我们在树莓派上下载zip的deb包。
我们将zip的deb文件拷贝出来。
$ mkdir /root/wit
$ cp /var/cache/apt/archives/zip_3.0-8_armhf.deb /root/wit
$ cd /root/wit
$ dpkg -x zip_3.0-8_armhf.deb .
$ dpkg -i zip_3.0-8_armhf.deb
$ zip -r zip_deb.zip usr/*
zip warning: name not matched: usr/share/doc/zip/changelog.gz
adding: usr/bin/ (stored 0%)
adding: usr/bin/zipsplit (deflated 36%)
adding: usr/bin/zipnote (deflated 39%)
adding: usr/bin/zip (deflated 41%)
adding: usr/bin/zipcloak (deflated 40%)
adding: usr/share/ (stored 0%)
adding: usr/share/man/ (stored 0%)
adding: usr/share/man/man1/ (stored 0%)
adding: usr/share/man/man1/zip.1.gz (stored 0%)
adding: usr/share/man/man1/zipcloak.1.gz (stored 0%)
adding: usr/share/man/man1/zipsplit.1.gz (stored 0%)
adding: usr/share/man/man1/zipnote.1.gz (stored 0%)
adding: usr/share/doc/ (stored 0%)
adding: usr/share/doc/zip/ (stored 0%)
adding: usr/share/doc/zip/copyright (deflated 54%)
adding: usr/share/doc/zip/TODO (deflated 51%)
adding: usr/share/doc/zip/WHATSNEW (deflated 58%)
adding: usr/share/doc/zip/changelog.Debian.gz (stored 0%)
$
2.3 unzip
对应与zip,unzip也需要安装。
$ dpkg -x make_3.81-8.2ubuntu3_armhf.deb .
$ zip -r unzip.zip usr/*
adding: usr/bin/ (stored 0%)
adding: usr/bin/zipinfo (deflated 40%)
adding: usr/bin/funzip (deflated 39%)
adding: usr/bin/unzip (deflated 40%)
adding: usr/bin/unzipsfx (deflated 37%)
adding: usr/bin/zipgrep (deflated 59%)
adding: usr/lib/ (stored 0%)
adding: usr/lib/mime/ (stored 0%)
adding: usr/lib/mime/packages/ (stored 0%)
adding: usr/lib/mime/packages/unzip (deflated 5%)
adding: usr/share/ (stored 0%)
adding: usr/share/man/ (stored 0%)
adding: usr/share/man/man1/ (stored 0%)
adding: usr/share/man/man1/zipinfo.1.gz (stored 0%)
adding: usr/share/man/man1/funzip.1.gz (stored 0%)
adding: usr/share/man/man1/unzipsfx.1.gz (stored 0%)
adding: usr/share/man/man1/zipgrep.1.gz (stored 0%)
adding: usr/share/man/man1/unzip.1.gz (stored 0%)
adding: usr/share/doc/ (stored 0%)
adding: usr/share/doc/unzip/ (stored 0%)
adding: usr/share/doc/unzip/History.600.gz (stored 0%)
adding: usr/share/doc/unzip/copyright (deflated 54%)
adding: usr/share/doc/unzip/BUGS (deflated 47%)
adding: usr/share/doc/unzip/ToDo (deflated 57%)
adding: usr/share/doc/unzip/changelog.gz (stored 0%)
adding: usr/share/doc/unzip/changelog.Debian.gz (stored 0%)
$
2.4 gcc
gcc依赖的deb包比较多,为简单起见,我将/var/cache/apt/archives下的deb包全部删除了,这样可以简单的知道使用apt-get install gcc后添加的deb包。
最后将之后的目录使用zip打包,我打包成了gcc.zip。
2.5 vim
在/var/cache/apt/archives下:
$ zip vim.zip *
$
该工具可以解压,然后放到文件系统中,这样,每一次启动,vim都是配置好了的。
2.6 git
$ zip git.zip *
$