安装dd-wrt

Have you ever wanted to have additional functionality like Email, Bit-torrent or even MySQL directly on your router? Well maybe now you can. How-To Geek dives into how-to install Opkg software on DD-WRT.

您是否曾经想直接在路由器上拥有其他功能,例如电子邮件,Bit-torrent甚至MySQL? 好吧,也许现在您可以。 How-To Geek深入研究了如何在DD-WRT上安装Opkg软件。

Image by Jean Spector and Aviad Raviv

图片由Jean Spector和Aviad Raviv摄

If you haven’t already, be sure and check out previous articles in the series:

如果还没有,请确保并查看该系列中的先前文章:

  • Turn Your Home Router Into a Super-Powered Router with DD-WRT

    使用DD-WRT将您的家用路由器转变为超级功率路由器

  • How to Remove Advertisements with Pixelserv on DD-WRT

    如何在DD-WRT上使用Pixelserv删除广告

Assuming you are familiar with those topics, keep reading. Keep in mind that this guide is a little more technical, and beginners should be careful when modding their router.

假设您熟悉这些主题,请继续阅读。 请记住,本指南是一些技术性文章,初学者在更换路由器时应格外小心。

细碎 (Tribulations)

I’ve recently bought a new Buffalo WZR-HP-AG300H which comes with a re-branded version of DD-WRT. Due to the fact that this router has a USB port, I immediately connected an HD and tried to use the “Optware, The Right Way” wiki guide. Unfortunately I’ve quickly found that the router that I got, is Atheros based and the script from that wiki page, doesn’t support it. So I’ve started digging (as i always do) and came across several guides (1, 2, 3 and 4) that aimed to explain how to get Opkg working manually. While their contribution (among other sources on the web) to this guide was invaluable, some of the instructions are (IMHO) simply not straight forward enough. For example, giving you the “lib” files fish, but don’t teach you how to fish it from the source. Also having to make use of a Linux formatted HD or at least a partition of one (which actually doesn’t even work on the firmwares I’ve tested with). That is why, I felt the need to create the below concise, simple to follow and reproducible procedure for getting the OpenWRT Opkg package manager to work on such routers.

我最近购买了新的Buffalo WZR-HP-AG300H ,它带有DD-WRT的重新命名版本。 由于该路由器具有USB端口,因此我立即连接了HD,并尝试使用“ Optware,The Right Way ”维基指南。 不幸的是,我很快发现我获得的路由器基于Atheros,并且该Wiki页面中的脚本不支持它。 所以我已经开始挖掘(因为我总是这样),并在几个导游(来了1 , 2 , 3和4 ),目的是解释如何得到Opkg手动工作。 尽管他们(在网络上的其他资源中)对本指南的贡献是无价的,但其中的一些说明(恕我直言)根本不够直接。 例如,给您“ lib”文件钓鱼,但不要教您如何从源代码钓鱼。 还必须使用Linux格式化的HD或至少一个分区( 实际上在我测试过的固件上甚至不起作用 )。 因此,我感到有必要创建以下简洁,易于遵循且可重复的过程,以使OpenWRT Opkg软件包管理器在此类路由器上工作。

Update: The mounting partitions capability has been reintroduced into the re-branded version on the 17798 alpha build.

更新:安装分区功能已重新引入到17798 alpha版本的重新命名版本中。

什么是Opkg? (What is Opkg?)

Opkg is a package manager like apt/aptitude and yum. It acts as a replacement for the Ipkg package manager, and can be used to install software such as: the Transmission BitTorrent daemon, the ssmtp email sender and Knockd a daemon that execute scripts after a specified port triggering sequence, to name a few. From the OpenWRT site:

Opkg是apt / aptitude和yum之类的软件包管理器。 它代替了Ipkg软件包管理器 ,可用于安装以下软件: Transmission BitTorrent守护程序,ssmtp电子邮件发件人和Knockd守护程序,这些守护程序在指定的端口触发序列之后执行脚本,仅举几例。 从OpenWRT网站 :

The opkg utility (an ipkg fork) is a lightweight package manager used to download and install OpenWrt packages from local package repositories or ones located on the Internet. Opkg attempts to resolve dependencies with packages in the repositories – if this fails, it will report an error, and abort the installation of that package.

opkg实用程序(一个ipkg分支)是一个轻量级的软件包管理器,用于从本地软件包存储库或Internet上的软件包存储库下载并安装OpenWrt软件包。 Opkg尝试解决存储库中软件包的依赖关系–如果失败,它将报告错误,并中止该软件包的安装。

So using Opkg we can install things like we did with Ipkg on the “Unleash Even More Power from Your Home Router” guide. The major differences, are:

因此,使用Opkg,我们可以在“ 从家庭路由器中释放更多功率 ”指南中安装类似Ipkg的工具。 主要区别在于:

  1. In order to give the examples of SSMTP and Knockd, yours truly, had to figure out the dependencies manually. The procedure to do this manually is bothersome and not very straight forward. Opkg does this automatically.为了给出SSMTP和Knockd的示例,您的确需要手动找出依赖性。 手动执行此操作的过程很麻烦,而且不是很直接。 Opkg自动执行此操作。
  2. This time we will be adding software on top of the firmware that’s in place, rather then replacing it. While replacing it was an excellent geek exercise, it was without a doubt: dangerous, prone to problems, irreversible and worst of all router specific. Needless to say that this is way simpler and safer.

    这次,我们将在现有固件之上添加软件,而不是替换它。 尽管更换它是一个极好的极客练习,但毫无疑问:危险,容易出问题,不可逆转且是所有路由器所特有的。 不用说,这是更简单,更安全的方法。

先决条件 (Prerequisites)

In order to complete this guide note the following:

为了完成本指南,请注意以下几点:

  1. As stated above, this guide was created and tested on Buffalo WZR-HP-AG300H with Buffalo’s “Pro” firmware version 17135. It should work on any Atheros (ar71xx) based routers with any version of DD-WRT of the same revision or above, but your mileage may very.

    如上所述,本指南是在具有Buffalo的“ Pro”固件版本17135的Buffalo WZR-HP-AG300H上创建和测试的。它可以在具有相同修订版或更高版本的DD-WRT的任何版本的任何基于Atheros(ar71xx)的路由器上使用,但您的里程可能会很高。

  2. You will need to enable SSH on the router, as well as install and use WinSCP  to connect to it. This was explained in the “How to Remove Advertisements with Pixelserv on DD-WRT” guide. In fact, it will be assumed that you are able to do everything that is explained in that guide.

    您将需要在路由器上启用SSH,以及安装并使用WinSCP连接到它。 《 如何在DD-WRT上使用Pixelserv删除广告 》指南对此进行了说明。 实际上,将假定您能够执行该指南中说明的所有操作。

  3. You need to be able to connect to the router using a terminal (SSH is recommended). Some pointers on how to do this, are on the DD-WRT wiki.

    您需要能够使用终端连接到路由器(建议使用SSH)。 DD-WRT Wiki上有一些有关如何执行此操作的指针。

  4. Space for JFFS and about 4MB of post formatted space for the base setup. JFFS space is not only a prerequisite, it is a show stopper. This is because, If your router doesn’t have at least the above mentioned 4MB of post formatted space, you will not gain any real benefit from this guide, and will be better off using the “Unleash Even More Power from Your Home Router” guide to install Ipkg packages directly into the firmware or installing the Ipkg packages manually. Follow the instructions on the “How to Remove Advertisements with Pixelserv on DD-WRT” guide to enable JFFS, and see how much free space you actually have after it is formatted.

    JFFS的空间,基本设置约有4MB的后期格式化空间。 JFFS空间不仅是先决条件,而且是表演的制胜法宝。 这是因为,如果您的路由器至少没有上述4MB的后置格式化空间,您将无法从本指南中获得任何真正的好处,并且最好使用“ 从家用路由器中释放更多的能量 ”将Ipkg软件包直接安装到固件中或手动安装Ipkg软件包的指南。 请按照“ 如何在DD-WRT上使用Pixelserv删除广告 ”指南中的说明启用JFFS,并查看格式化实际有多少可用空间。

Note: It is possible to do this with only 2MB of space for the setup, but then we would lose the upshot of “/etc” becoming read-writable and would have to invoke Opkg, while specifying the configuration file manually every time… which is like sooo lame… 

注意: 可能只需要2MB的安装空间即可完成此操作,但随后我们将失去“ / etc”变为可写的结果,必须调用Opkg,同时每次都手动指定配置文件……就像so脚...

让我们破解 (Lets get cracking)

At this point you should have enabled JFFS and are able to SSH/WinSCP into the router.

此时,您应该已启用JFFS并能够通过SSH / WinSCP进入路由器。

  1. Open a terminal session to the router.打开到路由器的终端会话。
  2. Create a temporary directory that we will be working in:

    创建一个我们将要使用的临时目录:

    mkdir /tmp/1 cd /tmp/1

    mkdir / tmp / 1 cd / tmp / 1

Use Ipkg to install Opkg While we are going to replace Ipkg as the package manager, we will be using it to manually install the Opkg installation package.

使用Ipkg安装Opkg当我们要替换Ipkg作为软件包管理器时,我们将使用它来手动安装Opkg安装软件包。

  1. To do this, download the Opkg installation package for the ar71xx architecture from the OpenWRT project trunk:

    为此,请从OpenWRT项目干线下载ar71xx体系结构的Opkg安装软件包:

    wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/opkg_618-2_ar71xx.ipk

    wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/opkg_618-2_ar71xx.ipk

    Note1: At the time of this writing, 618 is the latest version, this may be subject to change in the future, so adjust accordingly.Note2: It may be possible that the only difference in getting this guide to work for other architectures is to get the Opkg installer from the applicable architecture for your router… however this is untested by yours truly.

    注意1: 在撰写本文时,618是最新版本,将来可能会更改,因此请进行相应调整。 注意2: 使本指南适用于其他体系结构的唯一区别可能是从适用于您的路由器的体系结构中获取Opkg安装程序……但这确实未经您的测试。

  2. Invoke Ipkg to manually install Opkg using:

    调用Ipkg使用以下方法手动安装Opkg:

    ipkg install opkg_618-2_ar71xx.ipk

    ipkg安装opkg_618-2_ar71xx.ipk

    Note: You can, if you wanted too, install every package in the repository manually this way. However this would mean that you will have to resolve the dependencies on your own… and what would be the fun in that?

    注意: 如果需要,也可以通过这种方式手动安装存储库中的每个软件包。 但是,这意味着您将不得不自己解决依赖关系……而这样做的乐趣是什么?

Obtaining the dynamic library files (“lib”s) The required “lib” files to make Opkg work, are part of the OpenWRT distribution. To obtain them, one has to extract them from the “Root FileSystem” of said distribution.

获取动态库文件(“ lib”)使Opkg工作所需的“ lib”文件是OpenWRT分发的一部分。 为了获得它们,必须从所述发行版的“根文件系统”中提取它们。

  1. To do This, download the latest basic “Root FileSystem” for the openWRT distrebution which containes the required “lib”s from the OpenWRT project trunk:

    为此,请从OpenWRT项目干线下载适用于openWRT发行版的最新基本“ Root FileSystem”,其中包含所需的“ lib”:

    wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-rootfs.tar.gz

    wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-rootfs.tar.gz

  2. Extract it using:

    使用以下命令将其提取:

    tar xvzf openwrt-ar71xx-generic-rootfs.tar.gz

    tar xvzf openwrt-ar71xx-generic-rootfs.tar.gz

  3. Copy the “libs” files from the “rootfs” we’ve extracted above to the “libs” directory on our JFFS, while preserving their attributes and symbolic links:

    将上面提取的“ rootfs”中的“ libs”文件复制到JFFS的“ libs”目录中,同时保留它们的属性和符号链接:

    cp -Pp /tmp/1/lib/* /jffs/usr/lib/

    cp -Pp / tmp / 1 / lib / * / jffs / usr / lib /

    Note: You will get messages saying that the sub-directories are being omitted. As we don’t need anything but the “lib” files, this is fine and you can safely ignore these messages.

    注意: 您将收到一条消息,指出子目录已被省略。 因为我们只需要“ lib”文件,所以这很好,您可以放心地忽略这些消息。

Fixing the LD_LIBRARY “PATH” We need to tell the router, where to look for the shared libraries (libs) we’ve just “installed” and that it needs to do this before the ones that came with the firmware.

修复LD_LIBRARY“路径”我们需要告诉路由器在哪里可以找到我们刚刚“安装”的共享库(库),并且它需要在固件随附的库之前执行此操作。

  1. To do this set the LD_LIBRARY environment variable manually (for now), to make it so the location where we copied the new lib files will be the first one in the “PATH”:

    为此,请手动设置LD_LIBRARY环境变量(现在),以使其变为复制我们的新lib文件的位置成为“ PATH”中的第一个位置:

    export LD_LIBRARY_PATH=/jffs/usr/lib:$LD_LIBRARY_PATH

    导出LD_LIBRARY_PATH = / jffs / usr / lib:$ LD_LIBRARY_PATH

Read-writable “/etc” We are going to copy “/etc” to JFFS and then make the regular “/etc” mount point, point to it. Doing so, will both open up a world of possibilities, because “/etc” will become read-writeable (which I personally have been waiting for give or take 7 years now) and enable packages that expect this behavior, to work correctly.

可读写的“ / etc”我们将“ / etc”复制到JFFS,然后创建常规的“ / etc”安装点,指向它。 这样做将打开一个无限的可能性,因为“ / etc”将变为可读写的(我个人已经等待了7年之久),并使期望这种行为的程序包能够正常工作。

  1. Create the directory that will hold “/etc”:

    创建将包含“ / etc”的目录:

    mkdir -p /jffs/geek/etc

    mkdir -p / jffs / geek / etc

  2. Recursively copy the entirety of “/etc” while preserving all subdirectories, file attributes and symbolic links.

    递归复制整个“ / etc”,同时保留所有子目录,文件属性和符号链接。

    cp -a /etc/* /jffs/geek/etc/

    cp -a / etc / * / jffs / geek / etc /

  3. Manually (for now) “bind mount” the “/etc” directory to the JFFS one:

    手动(现在)将“ / etc”目录“绑定安装”到JFFS目录:

    mount -o bind /jffs/geek/etc/ /etc/

    挂载-o bind / jffs / geek / etc / / etc /

Set the Optware directory (“/opt”) Opkg from OpenWRT, expects to be used when the router’s firmware is built. As at such time, the FileSystem isn’t on the router yet, and thus still subject to change, there is no problem installing to any location on the FileSystem. That is why the Opkg configuration file points packages to install to the “root” (/) of the FileSystem. However, we are using Opkg after the firmware was built and installed on the router, and as we can’t change the root of the filesystem to be read-writeable, we will point all installations to be installed under “/opt”. However Currently “/opt” also points to a read-only location on the router’s firmware. To overcome this, we will make “/opt” point to JFFS, which is read-writable.

设置 OpenWRT 的Optware目录(“ / opt”) Opkg,预期在构建路由器的固件时使用。 此时,文件系统尚未安装在路由器上,因此仍然可以更改,因此将文件系统安装到文件系统上的任何位置都没有问题。 这就是为什么Opkg配置文件将软件包指向要安装到FileSystem的“根”(/)的原因。 但是,在固件构建并安装到路由器上之后 ,我们将使用Opkg,并且由于我们无法将文件系统的根目录更改为可读写,因此我们将所有安装都指向“ / opt”下安装。 但是,当前“ / opt”还指向路由器固件上的只读位置。 为了克服这个问题,我们将“ / opt”指向可读写的JFFS。

  1. To do this, Create the directory that will contain the Optware packages:

    为此,请创建将包含Optware软件包的目录:

    mkdir -p /jffs/opt

    mkdir -p / jffs / opt

  2. Manually (for now) “bind mount” the “/opt” directory to the JFFS one:

    手动(现在)将“ / opt”目录“绑定安装”到JFFS目录:

    mount -o bind /jffs/opt/ /opt/

    挂载-o bind / jffs / opt / / opt /

    Note: While beyond the scope of this guide, more advanced users may want to change this mount point, to point to an HD.

    注意:虽然超出了本指南的范围,但更多的高级用户可能希望更改此安装点,以指向HD。

Adjusting the Opkg configurations file We want the Opkg configuration file to be where Opkg searches for it by default (which is “/etc”) and adjusted to install to “/opt”.

调整Opkg配置文件我们希望Opkg配置文件在默认位置(即“ / etc”)被Opkg搜索,并被调整为安装到“ / opt”。

  1. To do this, move the opkg configuration file installed by the Opkg package to the read-writable “/etc” location:

    为此,将由Opkg软件包安装的opkg配置文件移动到可写的“ / etc”位置:

    mv /jffs/etc/opkg.conf /etc/

    mv /jffs/etc/opkg.conf / etc /

  2. Change the destination for Optware installations to be “/opt” instead of “root” (/).

    将Optware安装的目的地更改为“ / opt”,而不是“ root”(/)。

    To do this, with the “vi” editor or WinSCP navigate to “/etc/” and make the “opkg.conf” file’s content:

    为此,请使用“ vi”编辑器或WinSCP导航到“ / etc /”并制作“ opkg.conf”文件的内容:

    vi /etc/opkg.conf

    vi /etc/opkg.conf

    Make it look like:

    使它看起来像:

    src/gz snapshots http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages dest root /opt dest ram /tmp lists_dir ext /var/opkg-lists option overlay_root /overlay

    src / gz快照http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages dest root / opt dest ram / tmp listing_dir ext / var / opkg-lists选项overlay_root / overlay

    Note: You can change the “lists_dir” directive to point to a location that isn’t in RAM, but rather on JFFS. While this would relieve you from updating the lists, before you can install additional software (if your router is rebooted from the last time), you would lose about 1.5MB of the scarce JFFS space and you would be compounding to its erosion.

    注意: 您可以更改“ lists_dir”指令以指向不在RAM中而是在JFFS上的位置。 虽然这可以使您免于更新列表,但在安装其他软件(如果路由器从上次重新启动)开始之前,您将损失约1.5MB的稀缺JFFS空间,并且加剧了它的侵蚀。

Hello baby You should be able to see that Opkg is working by issuing the update and lists commands.

您好宝贝,您应该可以通过发出更新和列出命令来查看Opkg是否在工作。

  1. If all went well you should be seeing that the Opkg lists have been updated without error and you are ready to implement the script in the next step:

    如果一切顺利,您应该会发现Opkg列表已更新,并且没有错误,您可以在下一步中实现脚本了:

    opkg update; opkg list

    opkg更新; opkg列表

  2. Take the time to start exploring the packages available on the repository….花时间开始探索存储库中可用的软件包…。

StartUp script We now need to make it so all of the required mounting and path-ing will happen automatically when the router boots. To that end, we’ve created for you, this initialization geek-init script.

启动脚本现在,我们需要制作启动脚本 ,以便在路由器启动时自动进行所有必需的安装和路径设置。 为此,我们为您创建了这个初始化geek-init脚本 。

  1. Download, then extract it and place it under “/jffs/geek/etc/”. (Consider doing this with WinSCP).下载,然后解压缩并将其放在“ / jffs / geek / etc /”下。 (考虑使用WinSCP进行此操作)。
  2. Make the script executable by going into its properties with WinSCP or executing:

    通过使用WinSCP进入脚本的属性或执行以下命令,使脚本可执行:

    chmod +x /jffs/geek/etc/geek-init.sh

    chmod + x /jffs/geek/etc/geek-init.sh

  3. Make the script execute on the router’s startup, using the WebGUI. Under Administration -> Commands, in the text box, put:

    使用WebGUI使脚本在路由器启动时执行。 在管理->命令下,在文本框中输入:

    /jffs/geek/etc/geek-init.sh web-gui

    /jffs/geek/etc/geek-init.sh Web-gui

    And Click “Save Startup”.

    然后单击“保存启动”。

Kicking the tires If all went well, you should now be able to reboot the router and still use the Opkg package manager. That is to update, list and install applications. Lets test that everything is working by installing the “netstat” command, which for some reason has been omitted from DD-WRT’s builds lately. Before we do this, execute the netstat command in the terminal and you will see that you’re grated by an error from the shell, saying “-sh: netstat: not found”.

踢轮胎如果一切顺利,您现在应该可以重新启动路由器,并仍然使用Opkg软件包管理器。 即更新,列出和安装应用程序。 让我们通过安装“ netstat”命令来测试一切是否正常,由于某些原因,该命令最近在DD-WRT的版本中已被省略。 在执行此操作之前,请在终端中执行netstat命令,您将看到shell出现错误提示您“ -sh:netstat:未找到”。

  1. Your first step will always be, to update the Opkg lists, as to have the latest packages listing from the repository:

    第一步始终是更新Opkg列表,以获取存储库中的最新软件包列表:

    opkg update

    opkg更新

  2. If you don’t know which package contains the “netstat” command, you can filter the results using.

    如果您不知道哪个软件包包含“ netstat”命令,则可以使用过滤结果。

    opkg list | grep netstat

    opkg列表| grep netstat

  3. And now install “netstat” using:

    现在使用以下命令安装“ netstat”:

    opkg install net-tools-netstat

    opkg安装net-tools-netstat

    And now, when you execute the netstat command again it works… neat ha? :)

    现在,当您再次执行netstat命令时,它可以工作……整洁的哈? :)

Until the future articles in which we will install and configure software packages using this method, may you have tons of geek fun exploring the vast amount of software that is now right at your finger tips.

在以后的文章中,我们将使用这种方法来安装和配置软件包,直到您探索无所不包的大量软件时,您可能会发现无数的乐趣。



If such a machine is a virtual impossibility, it must logically be a finite improbability. So all I have to do in order to make one is to work out how exactly improbable it is, feed that figure into the finite improbability generator, give it a fresh cup of really hot tea and turn it on… … … . .. … .. .. The one thing they really don’t like, is a “Smart-Ass”.

如果这样的机器是虚拟的不可能,那么从逻辑上讲它必须是有限的不可能。 所以我要做的就是弄清楚它到底有多不可能,将这个数字输入到有限可能性发生器中,给它倒一杯新鲜的热茶,然后打开……。 ..….. ..他们真正不喜欢的一件事是“ Smart-Ass”。

翻译自: https://www.howtogeek.com/98408/how-to-install-additional-software-on-your-router-dd-wrt/

安装dd-wrt

安装dd-wrt_如何在家庭路由器(DD-WRT)上安装其他软件相关推荐

  1. 安装win8/win10提示无法在驱动器0分区上安装windows解决方法

    安装win8/win10提示无法在驱动器0分区上安装windows解决方法 参考文章: (1)安装win8/win10提示无法在驱动器0分区上安装windows解决方法 (2)https://www. ...

  2. ubuntu系统怎么安装ssh服务器配置,如何在Ubuntu 20.04 LTS上安装SSH服务器

    Terminal Linux Logo 在 步骤1.首先,通过apt在终端中运行以下以下命令,确保所有系统软件包都是最新的. sudo apt update sudo apt upgrade 步骤2. ...

  3. deepin tim(wine)无法安装_利用HyperV虚拟机,如何在Win10上安装Deepin国产操作系统?深度好文!...

    随着老美对华为手机业务的封锁,在PC端的操作系统的未来也逐渐引起了人们的重视,一旦Windows停止向国内供应的话,对国内市场的冲击也是不小的.基于这个原因,国产操作系统也越来越频繁地进入大家的视野. ...

  4. debian最小化安装如何安装桌面_如何在Ubuntu Server 18.04上安装GNOME桌面

    如果您已经采用了Ubuntu Server 18.04,你一定会感到非常自豪.然而,无论您多么关注它,您都意识到您的it管理生命中的大部分时间都在使用GUI,并且您不太确定接下来要做什么?如果这样描述 ...

  5. 腾讯云安装mysql本地主机名,腾讯云服务器上安装mysql,并用navicat连接

    腾讯云服务器上安装mysql,并用navicat连接 本文标签: 服务器安全 服务器被攻击 高防防火墙 数据库 腾讯云服务器上安装mysql,并用navicat连接, 1.用xshll连接腾讯云 用f ...

  6. python mac os安装教程_教程:在 Mac OS X 上安装 TensorFlow

    简评:手把手教你如何在 Mac OSX 系统安装 TensorFlow. 这个文档说明了如何在 Mac OS X 上安装 TensorFlow. 注意:从 1.2 版本开始,在 Mac OS X 上 ...

  7. ubuntu 安装kde桌面_在Ubuntu 20.04系统上安装KDE Plasma Desktop的方法

    本文介绍在Ubuntu 20.04系统上安装KDE Plasma Desktop的方法.Plasma Desktop是KDE创建的一种流行且功能强大的桌面环境,主要用于Linux系统.KDE Plas ...

  8. linux中wine yum安装,分享|在基于RedHat或Debian的系统上安装 Wine 1.7

    Wine,Linux上最流行也是最有力的软件, 可以顺利地在Linux平台上运行Windows程序和游戏. 这篇文章教你怎么在像CentOS, Fedora, Ubuntu, Linux Mint一样 ...

  9. fedora 安装Linux源码,如何在 Fedora 29/30 上安装 VS Code

    Visual Studio Code 简称 VS Code 是微软开发的一款跨平台的源代码编辑器. 它具有内置的调试支持,嵌入式 Git 控件,语法突出显示,代码完成,代码重构和代码片段. Visua ...

  10. ubuntu安装python百度经验_如何在Ubuntu 20.04上安装Python 3.9(含python编译安装和使用Apt命令安装)...

    在本文中,我们将向您展示在Ubuntu 20.04上安装Python 3.9的两种方法.第一种使用APT命令安装Python3.9,第二种是在Ubuntu20.04上编译安装Python 3.9.本教 ...

最新文章

  1. Oracle树查询总结
  2. 关于arm-linux-gcc的安装与配置
  3. java打开db文件_java 读取DB.properties文件方式 | 学步园
  4. Dynamo:亚马逊的高可用键值存储
  5. CentOS7时间设置问题
  6. 标准正弦波变频电源调制方式的实现
  7. java判断是否为linux,java判断是否Linux操作系统,判断OS操作系统类型工具类
  8. JS规则 是非颠倒(逻辑非操作符)!是逻辑非操作符,也就是不是的意思,非真即假,非假即真...
  9. hibernate中实体类对象的四种状态
  10. 大数据python之简单的网络爬虫代码实现(单一与循环代码进行网络爬虫)
  11. 在IDEA中使用Linux命令
  12. 金融产品经理的能力修炼精进指南
  13. 爱了爱了!今年最好用的手机表格制作软件!
  14. Ubuntu12.10 下 音乐播放器没声音
  15. Webpack 如何抽离、压缩 CSS 文件?
  16. eclipes代码提示及防空格自动补全
  17. excel-counta
  18. Windows 10 任务管理器重置偏好设置
  19. Tableau13——雷达图,凹凸图
  20. 马云的第三次创业:悄然布局三大帝国

热门文章

  1. CSS秀起来真没JS什么事
  2. echarts三级穿透地图(江西省)
  3. 【JS】Promise.race()方法例子流程详解
  4. 给你90天,成为不一样的自己
  5. 淘宝搜索店铺列表 API 返回值说明
  6. 瑞数vmp算法还原流程讲解
  7. 操作系统 页面置换算法模拟
  8. 2018年末施瓦辛格热血演讲《关于成功·成功的真谛》—YouTuBe播放量超1个亿!盘它!
  9. Codeup墓地-1979
  10. 【印象笔记】绕开bug的小技巧