把一切操作变成GUI
deepin
2024-02-25 20:13 Backbone of ecological co-construction group
顺便打了个deb包:
https://eic.lanzoum.com/i5YYu1pe5ded
不知道上架是否成功
(话说上架最后一步的应用截图真难用,怎么截都不对比例,可以改进一下吗?都到上架的最后一步了)
Reply Like 0 View the author
顺便打了个deb包:
https://eic.lanzoum.com/i5YYu1pe5ded
不知道上架是否成功
(话说上架最后一步的应用截图真难用,怎么截都不对比例,可以改进一下吗?都到上架的最后一步了)
再次感谢,经过热心朋友们的帮助,终于可以正常 使用了。
读了您的文章,长了见识,非常感谢。写的很详细,特别是解决问题的思路。
感谢投递
截图比例目前常用是大图1440x960或小图1050x700
cmake模式下依赖缺失检测的话其实也可以通过modules来查看检查的所有包的,一般会有Findxx.cmake这类文件,里面会写依据某个文件来查找依赖或者直接提示安装某个dev包
可以依据头文件结合apt-file search来查找对应的库
感谢投递
截图比例目前常用是大图1440x960或小图1050x700
cmake模式下依赖缺失检测的话其实也可以通过modules来查看检查的所有包的,一般会有Findxx.cmake这类文件,里面会写依据某个文件来查找依赖或者直接提示安装某个dev包
可以依据头文件结合apt-file search来查找对应的库
我才发现还有apt-file这么好用的工具,试了一下,真方便
那个截图尺寸,在deepin上面很难控制到这么精准的截图尺寸的嘞~差一个像素都不行,为什么要限制的这么死呢~
Popular Events
More
记一次编译Miktex
起因是看到这篇帖子有人想用这个软件:https://bbs.deepin.org/zh/post/268650
然后看看能不能编译一下,好让他或者其他有需要的用户方便使用,所以记录了下这次编译过程
MiKTeX(发音为mick-tech)是TeX/LaTeX及相关程序的最新实现。
TeX是由Donald Ervin Knuth编写的排版系统,他表示这个系统旨在创作美观的论文,尤其是包含大量数学内容的书籍。
注意:所有下载的文件都放在跟你deepin文件系统类型一致的目录或者分区中,切勿放在NTFS文件系统,否则会发生未知的编译错误。
网站写着cmake最低要求是7.0,但是后面编译miktex的时候提示至少要3.16
https://cmake.org/files/
这里我们选择3.25版本,因为后面log4cxx的编译版本比较高
选择cmake-3.25.0-Linux-x86_64.sh下载
下载完之后右键-属性设置为以可执行程序执行
sudo ./cmake-3.25.0-linux-x86_64.sh --skip-license --exclude-subdir --prefix=/usr/local
升级cmake到25.0版本
替换旧的版本
sudo update-alternatives --install /usr/bin/cmake cmake /usr/local/bin/cmake 1 --force
以下卸载旧版的操作不一定要执行,根据你实际情况来(其实可以跳过,因为上面指定了cmake版本了):
你可以尝试以下步骤来卸载旧版的CMake
打开终端。
输入
which cmake
来查看当前正在使用的CMake的路径。如果这个路径指向的是旧版本的CMake,那么你可以使用
rm
命令来删除它:
其中
/path/to/old/cmake
应该被替换为旧版本CMake的路径。
以下开始编译Miktex
需要安装的包
所有平台:
cat fop sed xsltproc
在类unix平台(包括macOS)上,您将需要这些库的开发包:
- apr - aprutil - bzip2 - cairo - expat - fontconfig - freetype2 - fribidi - gd - gmp - graphite2 - harfbuzz-icu - hunspell - icu - jpeg - log4cxx - lzma - mpfr - mspack - LibreSSL (or OpenSSL) - pixman - png - poppler - popt - potrace - uriparser - zzip
使用Qt5构建UI组件时:
poppler-qt5
接下来在终端输入来安装这些包,一次一次地编译,期间不断补充需要的包,在这里就一次安装掉免得补来补去:
for pkg in libmpfi-dev libboost-all-dev liburiparser-dev libzzip-dev libpopt-dev libmspack-dev libmpfr-dev libhunspell-dev libgmp-dev libgd-dev libcurl4-openssl-dev libboost-all-dev libbz2-dev cat fop sed xsltproc bzip2 cairo expat fontconfig freetype2 fribidi gd gmp graphite2 harfbuzz-icu hunspell icu jpeg log4cxx lzma mpfr mspack OpenSSL pixman png poppler popt potrace uriparser zzip poppler-qt5; do if ! dpkg -l | grep -q $pkg; then sudo apt-get install -y $pkg fi done
出现提示:
有几个包没有安装成功:
我们来看看:
看起来您正在尝试安装一些软件包,但是遇到了问题。这可能是因为这些软件包在您的软件源中不存在,或者它们的名称被错误地键入了。以下是我找到的一些可能的解决方案:
freetype2: 这个软件包可能在某些发行版中被称为libfreetype6。您可以尝试使用sudo apt-get install libfreetype6来安装它。
输入
sudo apt-get install libfreetype6
log4cxx: 这是Apache的一个项目,开源日志库,您可能需要从源代码编译它。
先卸载原有的apr
sudo apt remove libapr1 //再安装以下内容 apt-get install build-essential libapr1-dev libaprutil1-dev gzip zip cd apache-Log4cxx-x.x.x mkdir build cd build ccmake .. make sudo make install
在usr目录下搜索可以看到
检查一下apr和apr-util是否成功安装:
sudo apt install libapr1 libaprutil1 -y
)mspack: 这可能是一个名为libmspack0的软件包。您可以尝试使用
sudo apt-get install libmspack0
来安装它。输入
sudo apt-get install libmspack0
解决LibreSSL: 这是一个开源项目,那我们就不用他来安装,我们上面已经用OpenSSL来替代了。
uriparser: 这是一个开源项目,uriparser是一个严格遵循RFC 3986标准的URI解析和处理库
输入
zzip:这好像是一个很久以前的压缩工具,我去到zzip作者(Damien Debin)的网站上:https://archives.damiendebin.net/zzip/
这里找到zzip包的下载地址:https://archives.damiendebin.net/zzip/download.html#zzip
下载链接是:https://archives.damiendebin.net/zzip/files/zzip-linux.tar.gz
下载完之后我把二进制文件直接放进
/usr/local/bin
在终端输入zzip,显示正常。
中途发现还需要安装这几个
sudo apt install qt6-tools-dev qt6-declarative-dev qt6-5compat-dev qt5-default qttools5-dev qtscript5-dev
还要在这里下载libmpfi-dev相关包
http://ftp.cn.debian.org/debian/pool/main/m/mpfi/
选择
libmpfi0_1.5.3+ds-6+b1_amd64 .deb
,libmpfi-dev-common_1.5.3+ds-6_all.deb
,libmpfi-dev_1.5.3+ds-6+b1_amd64
安装这几个deb包之后,
他建议我们在源码目录之外构建,那么我们就在源码的文件夹旁边新建一个英文名字的文件夹 tex:
有两种方式可以编译:
在(含有cmakelists.txt)源码目录打开终端,输入
sudo cmake -B ../tex
或者
sudo cmake -B ../tex -DCMAKE_INSTALL_PREFIX=/opt/miktex -DWITH_UI_QT=ON //备用sudo cmake -DCMAKE_INSTALL_PREFIX=/opt/miktex -DWITH_UI_QT=ON -DMPFI_LIBRARY=/usr/lib/x86_64-linux-gnu/libmpfi.so -DMPFI_INCLUDE_DIR=/usr/include -Wno-dev ..
在这时候CMake已经创建了一个标准的安装目标,也就是刚刚的tex文件夹(里面含有makefile文件)
你可以用它来在标准位置(见上文的CMAKE_INSTALL_PREFIX描述)安装所有东西。在Linux和macOS上,运行
这将在/usr/local前缀的目录树中安装MiKTeX。(分散在bin、lib、share等文件夹里)
重新定位安装 在类Unix平台上,你可以使用DESTDIR机制来重新定位整个安装:
这个可以使所有的文件都放在一个文件夹
. └── usr └── local ├── bin ├── lib ├── libexec └── share
这将使用安装前缀(CMAKE_INSTALL_PREFIX)加上DESTDIR的值来安装所有东西,最终得到/home/xxx/usr/local。 DESTDIR机制在你想了解make install在哪里安装了什么时很有用。
要等一段时间,在编译。。。
好慢。。。。要挺久的:
构建变量 在运行CMake生成Makefiles时,可以按如下方式设置构建变量:
cmake -DVAR1=VAL1 -DVAR2=VAL2 ...
可选的有:
CMAKE_INSTALL_PREFIX=PATH
其中PATH可选:
这是由make install(见下文)使用的安装目录。此变量在类Unix系统(包括macOS)上默认为/usr/local。
$HOME/miktex //如果你只想为自己安装MiKTeX,使用这个前缀。不需要管理员权限。 /opt/miktex 如果你想创建一个不与其他系统包冲突的自包含MiKTeX设置,使用这个前缀。
//符号链接 MiKTeX的大多数可执行文件都带有miktex-前缀。例如,pdfTeX可执行文件的文件名是miktex-pdftex。你可以创建指向带前缀的可执行文件的符号链接: initexmf --admin --mklinks
运行此命令后,只要pdftex之前不存在(使用–force选项来覆盖现有的链接名),都可以调用pdfTeX引擎。
至此基本上编译已经完成,可以在终端输入
miktex-console
或者去你刚刚定义的opt目录下找到bin文件夹,里面基本上就是miktex所带的可执行程序了。
卸载 如果你想完全清除MiKTeX,你必须:
在你开始之前,你应该运行
initexmf --report
以找到MiKTeX目录的位置。移除符号链接 运行
来移除由initexmf --mklinks创建的符号链接(见上文)。
卸载 有一个uninstall目标,你可以用它来移除所有由make install安装的文件(见上文):
移除MiKTeX目录 有一些MiKTeX目录需要手动移除。例如:
rm -fr ~/.miktex rm -fr /var/lib/miktex-texmf rm -fr /var/cache/miktex-texmf rm -fr /usr/local/share/miktex-texmf
请查看initexmf --report的输出,以找出确切的位置。
make 的时候出现错误:
在92%的时候出现[ 92%] Linking CXX executable ../../../sandbox/miktex/bin/linux-x86_64/miktex-mpost /usr/bin/ld: ../../../sandbox/miktex/bin/linux-x86_64/libmiktex-metapost.so: undefined reference to `mpfi_clears' /usr/bin/ld: ../../../sandbox/miktex/bin/linux-x86_64/libmiktex-metapost.so: undefined reference to `mpfi_inits2' collect2: error: ld returned 1 exit status make[2]: *** [Programs/TeXAndFriends/mplib/CMakeFiles/miktex-mpost.dir/build.make:158:sandbox/miktex/bin/linux-x86_64/miktex-mpost] 错误 1 make[1]: *** [CMakeFiles/Makefile2:8828:Programs/TeXAndFriends/mplib/CMakeFiles/miktex-mpost.dir/all] 错误 2 make[1]: *** 正在等待未完成的任务....
这个错误信息表示在链接过程中出现了问题,导致 make 命令无法成功完成。具体来说,链接器(ld)在尝试链接
libmiktex-metapost.so
时,没有找到 mpfi_clears 和 mpfi_inits2 这两个函数的定义。这可能是因为虽然您已经安装了 MPFI 库,但是链接器没有找到正确的库文件。您可以尝试以下步骤来解决这个问题:
确认 MPFI 库文件(libmpfi.so)是否存在。您可以使用以下命令来检查:
ls /usr/lib/x86_64-linux-gnu/libmpfi.so
如果这个文件存在,那么命令会输出文件的路径。否则,命令不会有任何输出。
如果 libmpfi.so 文件存在,那么可能是链接器没有找到正确的路径。您可以尝试在 cmake 命令中再次指定 MPFI 库的路径,例如:
然后再次运行 make 命令。