Ubuntu18.04 使用过程遇到的问题记录

  • Post author:
  • Post category:其他



索引

1.

Ubuntu 18.04 安装搜狗输入法

2.

在 Ubuntu 18.04 中将第三方软件添加至 favorite 菜单栏

3.

在 VMware workstation 中为虚拟机安装 VMware Tools

4.

Ubuntu 18.04 环境下安装 Matlab2018b

5.

Ubuntu 安装不同版本的 gcc/g++ 编译器

6.

Ubuntu18.04环境下安装 ffmpeg

7.

命令行使用 ftp 命令进行文件传输




1.Ubuntu 18.04 安装搜狗输入法

貌似每次重新安装系统后解决输入法都是一个老大难问题,这里记录的是 Ubuntu 18.04 环境下安装搜狗输入法的过程,总的来说比较顺利。

(1) 安装 fcitx 。在新安装好的 Ubuntu 18.04 系统中,发现键盘输入系统中没有 fcitx 选项,可以通过命令行进行安装。

      sudo apt-get install fcitx        //安装 fcitx

(2) 安装完成后,在屏幕右上角的下拉菜单中选择设置,Region&Language -> Manage Installed Languages,首先确认在 Install/Remove Languages 提供的菜单中有安装 Chinese(simpilified) 的选项。之后在 Keyboard input method system 中选择 fcitx 选项,之后点击 Apply System-Wide 选项,通过重新登陆使得上述设置生效。

(3) 在

这里

下载搜狗输入法的 deb 安装包,并双击进行安装。安装完成后通过重启完成配置。

(4) 重启电脑后在屏幕的右上角已经存在一个键盘标志,用户可通过 点击图标 -> configure current input method 对输入法进行配置,在笔者的安装过程中,此时搜狗输入法已经在弹出的配置窗口中。若此时配置窗口中并不存在 Sogou Pinyin 选项,则可以点击界面右下角的 “+” 图标,取消勾选 Only show current language,之后搜索 sogou 关键字并选择 Sogou pinyin 即可。

上述过程并不是笔者探索出来的最优过程,而仅仅只是笔者根据过往经验、网络资料以及最终结果(这次一次成功O.O)而记录的安装步骤。若上述步骤并不成功,笔者建议使用比较笨的办法,直接从头开始配置相关环境。将 Keyboard input method system 中的选项恢复成 ibus,并 Apply System-Wide ,之后通过 sudo apt-get purge sogoupinyin 卸载对应的应用,并通过 sudo apt-get autoremove 删除多余的依赖文件,同时还需要删除 ~/.config 文件夹中与 fcitx 和 sogou 相关的所有的配置文件,这样将系统恢复至比较原始的状态后,再去尝试网络上提供的其他安装步骤,否则容易出现某一步出现问题而需要反复进行安装的情况( 仅根据个人之前安装失败的经验所述 )。




2.在 Ubuntu 18.04 中将第三方软件添加至 favorite 菜单栏( Ubuntu Dock )

Ubuntu 环境下,某些通过 tar 包下载的软件如 PyCharm 通过执行命令行命令的方式启动,这样操作导致每次启动应用程序的操作较为繁琐。同时在启动软件后,虽然软件在屏幕左侧的菜单栏上有图标显示,但却无法通过 右键 -> add to favorites 的选项来将应用图标固定在菜单栏上以便于启动应用。而且在 Show Application 中也无法通过搜索获得对应的应用程序的图标。这里主要通过添加 .desktop 文件的方式来为应用程序在桌面上建立快捷启动方式。

.desktop 文件为 linux 系统下为快速启动系统而使用的快捷方式文件,根据其所处位置的不同而具有不一样的效果,当 .desktop 文件位于 /usr/share/applications/ 文件目录下,则该快捷方式对于整个系统范围有效,而若 .desktop 文件位于 ~/.local/share/applications 文件目录下,则其仅对于当前用户有效。一般情况下,在通过安装包进行软件安装过程中,安装过程会自动为应用创建 .desktop 文件,但通过源码编译生成的应用程序和通过 archive 格式下载的软件则不会有对应的 .desktop 文件,用户可为其手动创建。

.desktop 文件的格式用户可参考上述目录中已存在的文件的格式,也可参照以下简单的模板创建名为 applicaiton_name.desktop 的快捷方式文件。

    [Desktop Entry]
    Type=Application    
    Encoding=UTF-8            //字符编码类型
    Name=MyApplication          //对应 entry 的名字   
    Comment=My fancy new application //对该 entry 的描述   
    Exec=my_application         //应用的可执行命令,包括执行程序和参数,一般是安装的应用程序中推荐使用的启动命令,注意一般使用绝对路径进行描述
    Icon=my_application.png       //应用的图标文件路径  
    Terminal=false            

将上述 .desktop 文件保存后(不包含注释),用户即可通过 Alt + F1 打开的 Activities 或 win + a 打开的 Show Application 界面中通过搜索在先前 .desktop 文件中指定的 Name 字段的名字搜索得到对应的应用的图标( 该图标由 .desktop 文件中的 Icon 字段的路径指定 )。之后用户可选中上述图标 右键 -> Add to favorite 即可将对应的图标添加至桌面的左侧菜单栏,方便对应用程序进行快捷启动。

参考资料:


Gnome Shell – How to add a custom favorite app / change favorite’s path ?


Adding custom programs to favorites of Ubuntu Dock


How to Create a .Desktop File For Your Application in Linux




3.在 VMware workstation 中为虚拟机安装 VMware Tools

VMware Tools 可以为虚拟机提供更多诸如全屏显示,文件共享等功能,这里记录下在 CentOS 虚拟机中安装 VMware Tools 的过程。(安装过程需要 root 权限)

(1)选中需要安装的虚拟机的标签,右键 -> 选择 安装 VMware Tools ,VMware workstation 会将一个载有安装文件的虚拟 CD 载入系统中;

(2)通过 mount 命令检查系统是否已经自动挂载了虚拟光驱,如果系统自动挂载了光驱,则会有一条挂载项显示文件系统类型为 iso9660 ,即对应光盘系统的文件类型;

      mount     //显示当前系统的挂载情况

(3)若系统没有自动进行挂载,则需要用户手动进行光驱挂载。

      mount /dev/cdrom /mnt/cdrom    //即将光驱挂载在目录 /mnt/cdrom目录下

若系统提示对应的挂载目录不存在,则新建 /mnt/cdrom 目录即可。

      mkdir /mnt/cdrom        //新建一个目录

(4)手动挂载成功后, /mnt/cdrom 目录下的内容即为挂载的光驱中的内容。可通过 ls 命令进行查看。此时该目录下应该有一个名为 VMwareTools-xxxx.tar.gz 的文件。

      ls /mnt/cdrom    //查看挂载成功后的目录内容

(5)解压该文件,并运行其中的 vmware-install.pl 文件,即可进行 VMware Tools 的安装。

      tar -zxvf  /path/to/VMwareTools  -C /path/to/extract file    //将对应的 .tar.gz 压缩文件解压至对应的 /path/to/extract file 文件夹下

之后进入解压后的文件目录,通过 ./vmware-install.pl 文件安装 VMware Tools 即可。

(6)用户可通过 umount 挂载目录 的方式取消当前的挂载。

      umount   /mnt/cdrom    //取消在/mnt/cdrom 目录上挂载




4.Ubuntu 18.04 环境下安装 Matlab2018b

由于实验环境要求,最近在 Ubuntu 18.04 上安装了 Matlab2018b , 这里简单记录过程。

(1) 首先是获取对应的 Matlab2018b 的安装包,这里笔者是在一个外国的网站上获得的,网址为:https://downloadly.ir/software/engineering-specialized/mathworks-matlab-download/,看不懂网页内容时可以在页面空白处 右键 -> 翻译为英文 ( chrome ),之后即可根据页面上的链接下载对应的内容,注意页面附的链接会有些强制跳转的广告,在下载时可以将鼠标放置在目标链接上,右键 -> 复制链接地址 的方式直接获取下载地址。

(2) 在上述界面上下载完整的五个 rar 压缩包,并对上述 rar 压缩包进行解压,只需通过命令指定解压的第一个压缩包,后续的压缩包会自动解压。这里通过 rar 命令进行压缩包的解压,默认条件下 ubuntu 系统并不支持 rar 的压缩方式,需要安装对应的 rar 程序进行解压。关于 rar 命令的更多介绍,可以参考 man rar 帮助和笔者的另一篇总结

Linux下文件的打包、解压缩指令——tar,gzip,bzip2,unzip,rar

安装 rar 程序:

      sudo apt install rar    //安装 rar

进行解压操作:

      rar x Mathworks_Matlab_R2018b_v9.5.0_Linux64.part1_Downloadly.ir.rar ~/Matlab2018    //将压缩包解压至用户主目录的 Matkab2018

(3) 解压完成后,进入解压后的目录,会获得对应的两个 iso 文件和一个 Crack 文件夹。其中 Crack 文件夹中的 Readme.txt 文件记录了简单的安装过程。

(4) 首先新建一个空的文件夹,之后将上述第一个 iso 文件挂载到新建的文件夹上进行操作。挂载完成后,上述目录下即为对应的安装执行程序。

      mkdir ~/matlab        //用户主目录下新建文件夹 matlab
      sudo mount -o loop MatlabR2018b_LinX64_disk1_Downloadly.ir.iso ~/matlab    //将 iso 文件挂载在 ~/matlab 目录下

这里需要注意,安装命令需在上述挂载目录之外执行,即需在 ~/matlab 目录之外执行安装,由于默认的matlab安装位置位于 /usr/local/ 目录下,在其中创建目录需要 root 权限。

      sudo ~/matlab/install        //执行安装程序

(5) 安装时选择 Use a File Installation Key 选项,并同意使用协议,在之后的界面中输入之前 Crack 文件夹中 Readme.txt 文件中的安装秘钥即可。

在后续的安装目录选择中,选择默认的安装目录,即可进入安装过程,会有进度条提示安装的进度。

(6) 在安装完成一半后,安装向导会提示需要第二个 iso 文件。首先将第一个 iso 文件取消挂载,在文件资源管理器中选中挂载的目录 matlab ,右键 -> umount ,并确定取消挂载即可。

之后将第二个 iso 文件挂载在相同的目录上,执行的命令与(4)中的 mount 命令一样,不过将 iso 文件换为第二个。挂载完成后选择 OK 继续执行安装过程。

(7) 为了使用方便,这里安装 matlab-support 来对 matlab 进行支持,可以显示 Matlab 的图标和提供一些其他的功能。

      sudo apt install matlab-support    //安装 matlab-support

安装过程中会要求指定 Matlab 的安装目录,也就是之前(5)中的安装路径。并要求对 Matlab 进行激活,这里选择离线激活并选中原 Crack 文件夹中的 license_standalone.lic 文件即可。

(8) 完成 matlab-support 的安装后,还需要用 Crack 文件夹中的 bin 文件的内容替换原 Matlab 安装目录中的 bin 文件夹的内容。

      sudo cp -rvf R2018a/bin /usr/local/MATLAB/R2018b/        //将 Crack 文件夹下 bin 文件内容复制到 Matlab 安装目录下

(9) 上述步骤完成后,用户已经可以通过 win + a 显示的应用界面中搜索得到对应 Matlab 应用的图标,点击图标即可运行。

另注:上述安装过程完成后,笔者打开 Matlab 时,会报错”

Cannot write to preference file “matlab.prf”  Check file permissions.

“,这是由于 Matlab 的安装过程通过 root 权限完成,故而所有的安装文件和配置文件的所有者均为 root。点击图标运行 Matlab 时,是以普通用户的权限运行的,故而会使得 Matlab 此时没有权限去写位于用户主目录下的 .matlab 文件的内容。一个可行的解决方法是将上述文件夹的所有者修改为当前用户,使得当前用户使用 Matlab 时具备写的权限。

      sudo chown -R user_name ~/.matlab    //修改上述目录的所有者为当前用户

参考:


Ubuntu Matlab R2017a破解安装


Linux MATLAB 2018a 安装教程及启动失败解决办法

使用 Matlab 的遇到的问题:

在使用 Matlab 的 mex 进行编译时,报错 ”

cannot convert ‘const mwSize* {aka const long unsigned int*}’ to ‘const int*’ …

“.由于使用网上公开的代码,故而程序本身无法正确编译的可能性较小,主要从环境的角度去解决问题。

a.在公开代码中是否存在对应的如 readme.txt 之类的说明文档,指定了程序编译所需的环境配置、宏定义、参数等;

b.在确定没有 a 的问题后,如果上述报错信息仍存在,则可能是系统本身环境的问题,如不同的系统版本、架构等问题导致的,在上述情况下,同样的报错多次出现,且均对应的是 mwSize 无法与 int 类型对应,猜测可能是不同系统环境下对应的类型不同导致的,这里的

解决方法是在使用 mex 编译时使用兼容选项




-



DMX_COMPAT_32.







5.Ubuntu 安装不同版本的 gcc/g++ 编译器

在使用 Matlab R2018b 时,发现其支持的 g++ 版本为 g++ 6.3.0 ,而在 Ubuntu 发行版上,g++ 版本一般随系统升级(有些 distribution 上默认不包含编译环境),所以无法满足上述需求。这里记录下 Ubuntu 环境安装不同版本的 g++ 编译器。

(1) 首先通过 g++ –version 查看当前系统的 g++ 版本;

      g++ --version        //查看当前 g++ 版本

可以看到当前的 g++ 版本为 7.3.0.

(2) 通过 apt 命令查看当前可通过 apt 安装的 g++ 的版本( 显示的信息依赖于上一次进行 apt-get update 的缓存信息)

      sudo apt-cache search g++ | grep g++        //查看当前与 g++ 相关的包,并筛选其中包含有 g++ 的行

通过上述命令看到目前可使用 apt 命令安装的 g++ 版本的情况,包括对应不同版本,不同架构的编译器,以及对应的库的支持,一般而言,安装某版本的 g++ 只需要选择对应的 g++-n 和 g++-6-multilib 即可。

(3) 通过 apt 安装对应所需要的 g++ 版本和库。但是这里注意,使用 apt 安装的 g++ 编译器和相关库的版本只能选择大的版本号如 6 ,而无法指定具体的小版本号 6.3.0,如笔者安装的 g++-6 的版本实际为 g++-6.4.0.

        sudo apt install g++-n g++-n-multilib        //安装对应的 g++ 编译器和库

(4) 通过命令切换不同的 g++ 编译器版本。

通过 update-alternative 为不同版本的编译器创建链接

      sudo update-alternative --install /usr/bin/g++ g++ /usr/bin/g++-6 40    //创建 g++-6 的链接,并指定了优先级 40
      sudo update-alternative --install /usr/bin/g++ g++ /usr/bin/g++-7 60    //创建 g++-7 的链接,并指定了优先级 60

优先级用于在系统进行自动选择时确定使用的软件版本,在自动模式下,总是使用优先级高的版本。

      sudo update-alternatives --config g++        //手动选择所需的软件版本

输入上述命令后,直接通过数字索引选择所需的 g++ 版本即可。

上述配置过程除可以用于不同版本的编译器的设置外,还可以用于设置具有相似功能的不同软件的替换和切换,更多原理的介绍可以参考 update-alternative 命令的帮助文档 man update-alternative。




6. Ubuntu18.04 环境下安装 ffmpeg

ffmpeg 是一个由提供对视频、音频和其他多媒体流文件进行处理功能的库和程序构成的自由软件项目,其常被用于适用于不同格式的音频和视频的录影、转换和流处理等场合。这里记录在 Ubuntu 18.04 平台下安装 ffmpeg 的过程。( 注:ffmpeg 目前已经可以通过 apt 直接进行安装,见最后 )

a.在 ffmpeg 官网上下载对应的安装压缩包,笔者使用的是 ffmpeg-4.1.tar.bz2 ,将其解压至用户主目录下。

    tar -xvjf ffmpeg-4.1.tar.bz2    -C ~    //将文件解压缩至用户主目录

b.简单的安装过程在解压获得的 ffmpeg-4.1 目录中的 INSTALL.md 文件中有一定的描述,首先对编译安装环境进行配置。

    ./configure            //检测当前的编译安装环境

此时可能会产生报错 ”

nasm/yasm not found or too old

” ,这是由于 ffmpeg 中部分优化代码使用汇编编写,对应的编译过程需要使用汇编编译器,这里有两种选择,一种是在 ./configure 时使用 –disable-yasm 选项,最终获得是一个裁剪版本的 ffmpeg 工具集;另外一种是安装对应的汇编编译器,可使用下列命令进行安装。

    sudo apt install yasm        //安装 yasm 编译器

安装完成后,需要重新执行上述 ./configure 操作,再进行下一步操作。

c.正确的进行环境配置后,ffmpeg 会列出目前已经检测到的环境的情况,包括检测到的外部依赖库和将要生成的应用程序等,完整的应用程序套件包括 ffmpeg( 用于视频的转码 ),ffplay( 用于简单的视频播放和测试 )和 ffprobe( 用于查看文件格式 ),在配置的 programs 字段会有输出。此时可能会出现

ffmpeg 准备生成的应用程序中没有 ffplay 的情况

,如下图所示。

这时可以查看一下对应的 External libraries 字段,看其中是否存在 SDL。

SDL是编译 ffplayer 所必须的外部库,而 Ubuntu 环境并不会对其默认安装,故而需要用户手动安装。这里注意,网上的一些大概五六年前的博客记录的是要安装 libsdl1.2-dev 的库,而实际上目前(2018) ffmpeg 已经支持 SDL2,用户可通过如下命令查看可以安装的 sdl 版本。

    apt-cache search libsdl | grep libsdl        //查看目前可安装的 sdl 库版本

这里选择安装的是 libsdl2-dev,使用 apt-install 安装。

    sudo apt install libsdl2-dev        //安装所需的 sdl 库

安装完成后,可以查看下 /usr/include 目录下是否含有对应的 SDL2 的库,确认安装过程成功,若上述目录不存在,在后续的编译过程可能会产生报错 “fatal error: SDL.h: No such file or directory” 。完成上述配置后,再进行 ./configure ,就可以在 External libraries 字段中发现对应的 sdl2 字段,对应的 Programs 字段下也会有 ffplay 了。

d.通过 make 执行编译过程,编译完成后,在解压目录下就应该已经存在 ffmpeg 、ffplay 和 ffprobe 的可执行程序了。此时执行 sudo make install 命令完成安装过程。

    make              //编译产生对应的库文件和应用程序
    sudo make install      //安装上述编译结果,某些操作需要 root 权限,故而使用 sudo

注意:上述安装过程仅编译了最基本的 ffmpeg 功能,并没有包括所有 ffmpeg 支持的编码格式等内容,用户在编译时需要根据自己的需要对编译时的参数进行调整。

(1)手动编译获得的 ffmpeg 在使用时可能出现以下错误

  Unrecognized option 'crf'.
  Error splitting the argument list: Option not found

以及

  Unrecognized option 'preset'.
  Error splitting the argument list: Option not found

这常见于在

使用 ffmpeg 时使用到了 libx264,但在实际的编译过程中并有指定编译 libx264 参数,默认不会编译这一部分组件,从而产生报错

。解决方案可以是直接通过命令行安装最新版本的 ffmpeg 或者通过指定对应参数的方式重新编译 ffmpeg.重新编译的参数具体可以参考

Compile FFmpeg for Ubuntu, Debian, or Mint

若想要使用 apt 安装 ffmpeg ,可以进入 ffmpeg 源码目录,通过 make uninstall 卸载之前安装的手动编译版本的 ffmpeg.之后通过 apt 命令安装 ffmpeg。

    sudo apt install ffmpeg    //通过 apt 安装 ffmpeg

参考:

ffmpeg: Unrecognized option ‘crf’. Error splitting the argument list: Option not found

(2)在通过 apt 安装 ffmpeg 后,在使用时可能会出现报错。这是由于手动编译安装的 ffmpeg 安装在 /usr/local/bin/ 目录下,而通过 apt 安装的 ffmpeg 位于 /usr/bin 目录下。在卸载手动安装的 ffmpeg 后上述应用程序信息并没有直接更新,故而产生了以下报错。


bash: /usr/local/bin/ffmpeg: No such file or directory

解决方式:对于终端或图像界面,均可通过重新启动的方式刷新上述可能的更新信息,从而可以正常使用。在命令行环境下,也可以直接通过命令 hash -r 刷新信息。

参考:

why ffmpeg command producing error in Ubuntu terminal?




7.命令行使用 ftp 命令进行文件传输

Ubuntu 系统环境下,可以通过 ftp 协议与远程主机和服务器进行文件的传输。用户想使用 ftp 服务时,可以使用提供 ftp 服务的应用程序如 FileZilla,从而在图像界面上方便地进行操作。Ubuntu 18.04 中可以直接通过 apt 进行 FileZilla 的安装,这里安装的是可以提供 ftp 连接功能的 FileZilla 客户端。

    sudo apt install filezilla    //通过 apt 安装 filezilla 客户端

而在某些情况下,用户可以直接通过命令行中的 ftp 命令使用 ftp 服务。

a.登录开启了 ftp 服务的服务器,通过 ftp 地址 的方式使用 ftp 命令登录 ftp 服务器。通过 ftp 命令登录 ftp 服务器后,会进入一个 ftp 命令提供的交互式界面,后续与 ftp 相关的操作均在该界面中进行。

    ftp address    //登录 address 指向的 ftp 服务器,地址可以是域名或ip地址,后续需输入用户名和密码

使用 ftp 命令登录 ftp 服务器的效果如图所示。仅使用目标地址作为 ftp 命令的参数时,需要依次输入账号和密码进行登录。在某些 ftp 服务器中,开放了匿名账户即账号和密码均为

anonymous 的账户供公共使用。用户可在提示符 "ftp>" 后输入需执行的命令。

b.用户可在上述交互式界面中执行所需的操作,包括文件管理、文件的上传下载等操作。

1)远程登录的 ftp 服务器上可以进行基本的文件管理操作,支持包括显示当前目录下文件结构( ls ),切换目录( cd )和新建/删除文件夹( mkdir/rmdir ),显示当前路径( pwd )等命令。上述命令针对的是登录的服务器端的操作,与本地主机无关。如图示的操作中,通过 cd 命令进入了名为 VSR 的目录,通过 ls 命令列出了当前目录下所包含的文件结构。

2)用户可以通过 put 和 get 命令进行文件的上传和下载操作。文件路径可以是相对路径也可以是绝对路径,当不指定文件的绝对路径时,上述命令默认在当前目录下通过相对路径寻找指定的文件。

    put 文件路径    //将本地的文件上传至服务器端的当前目录
    get 文件路径    //将服务器端的文件下载至本地的当前路径

上述 put 和 get 命令仅支持单个文件的传输,若想要一次同时处理多个文件,可以使用 mput 和 mget 命令,从而可以同时指定多个文件。

3)使用 get 和 put 命令时,get 命令将 ftp 服务器上的文件下载到本地主机的当前目录,这里本地主机的当前目录默认为使用 ftp 命令登录远程主机时的本地目录。如若登录时,本地终端位于用户根目录~,则后续 get 命令直接将文件下载至用户根目录 ~ 下。用户可以通过 lcd 命令切换本地主机的目录,从而使得 get 命令下载的文件能够直接位于目标目录下。

    lcd dir        //切换本地主机的当前目录至 dir 指定的目录

c.在完成所需文件的操作后,通过 bye / quit / bye 命令退出上述交互界面,同时结束与远程服务器之间的会话。

    quit/bye    //退出 ftp 服务器

参考:


如何在命令行中使用 ftp 命令上传和下载文件


FTP Commands for Linux and UNIX

转载于:https://www.cnblogs.com/yhjoker/p/9761104.html