在Ubuntu-20.04上安装Emacs-27.1

在电脑上装了一个Ubuntu-20.04。上面几乎啥软件也没有,所以装Emacs的时候有很多依赖的软件需要装,有点麻烦。下面是中途开始记录的日志。

emacs-> X -> gtk+-3.24.23

No package 'glib-2.0' found
No package 'atk' found
No package 'pango' found
No package 'fribidi' found
No package 'cairo' found
No package 'cairo-gobject' found
No package 'gdk-pixbuf-2.0' found

安装好ninja了
python3 -m pip --version看到安装好pip 20.0.2了

sudo gedit ~/.bashrc
进入文件,改里面的PATH环境变量
当前:export PATH="\$PATH:/usr/local/sbin:usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/narh/bin:/bin:/usr/bin:/home/narh/.local/bin"
加入一条:echo 'export PATH=/home/narh/.local/bin:\$PATH' >>~/.bashrc
然后就安装好meson了!
接下来安装atk去!

先要安装glib
sudo apt-get install cmake安装了cmake
然后再安装libffi-3.4.2
还缺少xgettext,于是安装gettext-0.21
然后再在glib目录里meson _build,它说configured,直接用ninja就行了!
于是ninja -C _build,结果在gio/test/test.gresource和gio/tests/plugin-resources.c上失败了
重新解压一遍,再次meson _build,还是有好多NO
sudo apt-get install libdbus-1-dev
再ninja -C _build,又推进了一些,直到第384个子命令才报错。看来尽量把meson _build时报的错都解决掉才能通过这个ninja
从网上找了mach_time.h、crt_externs.h放进/usr/include
sudo apt-get install libevent-dev
没有xlocale,听说把xlocale链接到locale就行了
sudo ln -s /usr/include/locale.h /usr/include/xlocale.h
sys/mkdev.h、sys/mntctl.h和sys/mnttab.h好像是solaris里面的头文件,所以自己的ubuntu没有。那就不管了
还没有fdwalk和getfsstat,也没有kevent和kqueue等许多东西。
kqueue应该在sys/event.h库里面。难道刚才安装了libevent-dev还不行吗……
看了一下,自己没有/usr/include/sys这个目录。难道要创建链接,把sys/...链接到...吗?
没有winsock2.h,但是自己又不在windows系统下安装,应该没问题
要安装libpcre、mount、libselinux和libelf
安装了pcre-8.45。发现已经有mount命令了。
apt-cache search libselinux(这个命令真方便!)
sudo apt-get install libselinux1
apt-cache search libelf
sudo apt-get install libelf1
sudo apt autoremove卸载了libfprint-2-tod1和libllvm10
找不到xmllint,但是apt-get了一下,好像已经有了
再meson _build一番,发现有了libpcre,但还是没有libselinux和libelf。不管了
ninja -C _build在第682个子命令报错
sudo apt-get install libselinux-dev
sudo apt-get install libelf-dev
这回有libselinux和libelf了。但是还是报错了

发现原来自己在/usr/include里找不到sys目录,是要在x86_64-linux-gnu目录下找!https://www.cnblogs.com/johnnyzen/p/8016796.html
发现安装完libevent-dev的event.h里面几乎啥也没有,也没kqueue之类,于是网上找了一个好像有kqueue的event.h放进sys目录里
再meson _build,有了sys/event,但还是没有kqueue。发现自己粘的好像是macOS适用的。于是把这个和之前的mach_time.h、crt_externs.h都删了……
仔细看了看,总感觉自己的event.h是个假的。里面还引用windows.h、winsock2.h,也没有kqueue
于是把event.h挪走了,再apt-get libevent-dev,还是没装上新的。到底咋回事……
从libevent.org上下载安装了libevent-2.1.12-stable,但还是没用
再去查了一下glib,现在有glib-2.66.7了,而且页面里还写着各种依赖包!速去安装一波
sudo apt-get install libxml2
sudo apt-get install libxml2-dev
sudo apt-get install libxslt1-dev
sudo apt-get install bindfs
安装了gdb-10.2
sudo apt-get install itstool
已经有了docbook-xml,又sudo apt-get install docbook-xsl
为了安装gtk-doc-1.33.2
sudo apt-get install python3-pygments
sudo apt-get install xsltproc
sudo apt-get install libglib2.0-dev
然后用meson和ninja命令安装好了gtk-doc-1.33.2
glib-networking也已经有了
为了安装gobject-introspection-1.66.1
sudo apt-get install flex
sudo apt-get install bison
还要安装cairo...
仔细一看,glib的INSTALL.in里也写了依赖包
sudo apt-get install pkg-config-x86-64-linux-gnu
我好像已经有glib-2.64.6了!安装gtk+所缺少的glib-2.0是刚才装的libglib2.0-dev!

下面开始安装pango
安装了fribidi
sudo apt-get install libharfbuzz-dev
sudo apt-get install libfreetype-dev
准备安装fontconfig,下载了它的安装包,但是make发现好像缺少什么;但是用apt-get好像能直接安装
于是受到启发
sudo apt-get install emacs-gtk
安装好辣!

发现放着一些文件夹:
file-5.39 gmp-6.2.0 libgcrypt-1.9.0 libgpg-error-1.41 mpc-1.2.0 mpfr-4.1.0 openssl-3.0.0-alpha10 rpm-4.16.1.2 zlib-1.2.11
还有一些准备安装的压缩包:
atk-2.36.0.tar.xz cairo-1.17.4.tar.xz emacs-27.1.tar.gz fontconfig-2.13.1.tar.bz2 gdk-pixbuf-2.40.0.tar.xz glib-2.68.3.tar.xz gobject-introspection-1.66.1.tar.xz gtk+-3.24.23.tar.xz libepoxy-1.5.4.tar.xz libffi-3.4.2.tar.gz pango-1.47.0.tar.xz sysprof-3.40.1.tar.xz
这些东西以后再安装吧。嘻嘻

apt-get真是太方便了!记得配合apt-cache search *** 使用~

上一篇:emacs配置


下一篇:VSCode中不能使用cnpm