自 威锋网页版
![image](https://feng-bbs-att-1255531212.image.myqcloud.com/2018/03/27/14398893_002+%E5%90%AF%E5%8A%A8%E8%AE%BE%E7%BD%AE-%E6%A0%BC%E5%BC%8F%E5%8C%96.png?imageMogr2/format/jpg/interlace/0/quality/100)
![image](https://feng-bbs-att-1255531212.image.myqcloud.com/2018/03/27/14398894_003+%E6%A0%BC%E5%BC%8F%E5%8C%96%E7%A3%81%E7%9B%98+2018-03-16+08.20.59.png?imageMogr2/format/jpg/interlace/0/quality/100)
![image](https://feng-bbs-att-1255531212.image.myqcloud.com/2018/03/27/14398895_004+%E4%BF%A1%E6%81%AF%E6%8F%90%E7%A4%BA+2018-03-16+08.24.30.png?imageMogr2/format/jpg/interlace/0/quality/100)
![image](https://feng-bbs-att-1255531212.image.myqcloud.com/2018/03/27/14398896_006+%E5%8F%8C%E5%87%BB%E8%8E%B7%E5%8F%96%E5%85%A8%E9%83%A8%E5%AE%B9%E9%87%8F.png?imageMogr2/format/jpg/interlace/0/quality/100)
![image](https://feng-bbs-att-1255531212.image.myqcloud.com/2018/03/27/14398898_007+%E7%A3%81%E7%9B%98%E7%AE%A1%E7%90%86+2018-03-16+08.47.44.png?imageMogr2/format/jpg/interlace/0/quality/100)
![image](https://feng-bbs-att-1255531212.image.myqcloud.com/2018/03/27/14398900_008+%E5%88%A0%E9%99%A4%E6%96%87%E4%BB%B6.png?imageMogr2/format/jpg/interlace/0/quality/100)
![image](https://feng-bbs-att-1255531212.image.myqcloud.com/2018/03/27/14398901_009+%E7%A2%8E%E7%89%87%E6%95%B4%E7%90%86.png?imageMogr2/format/jpg/interlace/0/quality/100)
![image](https://feng-bbs-att-1255531212.image.myqcloud.com/2018/03/27/14398903_011+%E5%8F%B3%E9%94%AE%E5%AF%BC%E5%85%A5%E6%96%87%E4%BB%B6.png?imageMogr2/thumbnail/960x/format/jpg/interlace/0/quality/100)
![image](https://feng-bbs-att-1255531212.image.myqcloud.com/2018/03/27/14398904_012+%E6%89%93%E5%BC%80+2018-03-16+09.01.36.png?imageMogr2/format/jpg/interlace/0/quality/100)
![image](https://feng-bbs-att-1255531212.image.myqcloud.com/2018/03/27/14398906_013+%E6%88%90%E5%8A%9F%E5%AF%BC%E5%85%A5grldr%E5%BC%95%E5%AF%BC%E6%96%87%E4%BB%B6.png?imageMogr2/format/jpg/interlace/0/quality/100)
![image](https://feng-bbs-att-1255531212.image.myqcloud.com/2018/03/27/14398917_014+%E5%AF%BC%E5%85%A5%E5%90%AF%E5%8A%A8%E8%8F%9C%E5%8D%95.png?imageMogr2/format/jpg/interlace/0/quality/100)
![image](https://feng-bbs-att-1255531212.image.myqcloud.com/2018/03/27/14398930_015+%E5%8F%B3%E9%94%AE-%E6%96%B0%E5%BB%BA%E6%96%87%E4%BB%B6.png?imageMogr2/format/jpg/interlace/0/quality/100)
![image](https://feng-bbs-att-1255531212.image.myqcloud.com/2018/03/27/14398932_016+%E6%96%B0%E5%BB%BA%E6%96%87%E4%BB%B6.png?imageMogr2/format/jpg/interlace/0/quality/100)
![image](https://feng-bbs-att-1255531212.image.myqcloud.com/2018/03/27/14398948_017+%E6%96%B0%E5%BB%BAdata.png?imageMogr2/format/jpg/interlace/0/quality/100)
![image](https://feng-bbs-att-1255531212.image.myqcloud.com/2018/03/27/14398949_018+%E5%8A%A0%E5%85%A5%E5%88%B0%E5%88%86%E5%8C%BA%E8%A1%A8.png?imageMogr2/format/jpg/interlace/0/quality/100)
![image](https://feng-bbs-att-1255531212.image.myqcloud.com/2018/03/27/14398950_019+data%E5%88%86%E5%8C%BA%E5%9B%BE%E6%A0%87.png?imageMogr2/thumbnail/960x/format/jpg/interlace/0/quality/100)
![image](https://feng-bbs-att-1255531212.image.myqcloud.com/2018/03/27/14398956_020+%E5%88%A0%E9%99%A4%E5%8D%A0%E5%BA%A7%E6%96%87%E4%BB%B6.png?imageMogr2/format/jpg/interlace/0/quality/100)
![image](https://feng-bbs-att-1255531212.image.myqcloud.com/2018/03/27/14398960_021+%E5%88%86%E5%8C%BA%E5%88%97%E8%A1%A8.png?imageMogr2/thumbnail/960x/format/jpg/interlace/0/quality/100)
![image](https://feng-bbs-att-1255531212.image.myqcloud.com/2018/03/27/14398962_023+%E6%89%93%E5%BC%80+2018-03-16+10.44.03.png?imageMogr2/format/jpg/interlace/0/quality/100)
2、检查确认其中每一个map (bd)/后面的iso文件名与刚才导入的三个PE iso文件名完全相同。如果不同,请修改后保存。
![image](https://feng-bbs-att-1255531212.image.myqcloud.com/2018/03/27/14398965_025+%E5%A4%9APE%E8%8F%9C%E5%8D%95.png?imageMogr2/thumbnail/960x/format/jpg/interlace/0/quality/100)
5、全部选中FbinstTool窗口中的Grldr菜单文本,按Ctrl+v,将“多PE豪华grldr菜单.txt”中的文本全部粘贴到Grldr菜单中。
![image](https://feng-bbs-att-1255531212.image.myqcloud.com/2018/03/27/14398975_031+%E8%BD%AC%E4%B8%BA%E5%8F%AF%E8%A7%81%E5%88%86%E5%8C%BA2.png?imageMogr2/thumbnail/960x/format/jpg/interlace/0/quality/100)
![image](https://feng-bbs-att-1255531212.image.myqcloud.com/2018/03/27/14398976_032+%E5%A4%8D%E5%88%B6ISO1.png?imageMogr2/thumbnail/960x/format/jpg/interlace/0/quality/100)
![image](https://feng-bbs-att-1255531212.image.myqcloud.com/2018/03/27/14398977_033+%E6%AD%A3%E7%A1%AE%E6%8E%92%E5%88%97.png?imageMogr2/thumbnail/960x/format/jpg/interlace/0/quality/100)
![image](https://feng-bbs-att-1255531212.image.myqcloud.com/2018/03/27/14398979_034+%E6%8A%B9%E7%9B%98.png?imageMogr2/thumbnail/960x/format/jpg/interlace/0/quality/100)
![image](https://feng-bbs-att-1255531212.image.myqcloud.com/2018/03/27/14398980_035+Legacy+BIOS%E5%BC%95%E5%AF%BC%E8%8F%9C%E5%8D%95.png?imageMogr2/thumbnail/960x/format/jpg/interlace/0/quality/100)
![image](https://feng-bbs-att-1255531212.image.myqcloud.com/2018/03/27/14398981_036-1+F12%E9%80%89%E5%8D%951.png?imageMogr2/thumbnail/960x/format/jpg/interlace/0/quality/100)
![image](https://feng-bbs-att-1255531212.image.myqcloud.com/2018/03/27/14398983_037+UEFI+PE%E9%80%89%E5%8D%95.png?imageMogr2/thumbnail/960x/format/jpg/interlace/0/quality/100)
![image](https://feng-bbs-att-1255531212.image.myqcloud.com/2018/03/27/14398985_040+%E5%AE%89%E8%A3%85%E7%95%8C%E9%9D%A2.jpg?imageMogr2/thumbnail/960x/format/jpg/interlace/0/quality/100)
管线探测|广州.非开挖.地下管网探测与施工.设计出图一站式
2、检查确认其中每一个map (bd)/后面的iso文件名与刚才导入的三个PE iso文件名完全相同。如果不同,请修改后保存。
5、全部选中FbinstTool窗口中的Grldr菜单文本,按Ctrl+v,将“多PE豪华grldr菜单.txt”中的文本全部粘贴到Grldr菜单中。
最近刷了几个固件都不是特别满意,所以准备试着做一个自己的路由固件。
操作系统:-19.10-desktop-amd64 :最新版 路由器:ASUS-ACRH17
首先安装Ubuntu系统,安装步骤一直下一步即可,非常简单,此处略过。 其次Ubuntu默认没有启用ssh,所以要先安装ssh服务。硬盘空间分配100G
输入命令sudo apt-get install openssh-server
,输入管理员密码
输入命令’ps -e |grep ssh’看到如下图所示,即安装成功。
分别输入命令
sudo apt-get update
和
sudo apt-get upgrade
进行更新。
闲国外站点慢的话,可以更换国内站点。
安装基础环境 输入命令sudo apt-get install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev
下载
openwrt
mkdir lede #新建一个目录 sudo chmod 777 lede #修改权限(重要) cd lede #进入目录 git clone https://git.openwrt.org/openwrt/openwrt.git #openwet最新源码包地址
这里需要梯子
更新源码中的软件。
cd lede/openwrt ./scripts/feeds update -a #下载最新软件 ./scripts/feeds install -a #把下载完的新软件进行安装
输入命令make menuconfig
选择路由器对应的CPU类型。照着图选CPU类型
添加需要的功能
3.1 第一个选项是UI主题 3.2 选择web界面语言 3.3 添加功能模块,根据自己需求自定义。
编译安装
选完自己需要的功能后,开始编译安装
最后生成刷机用的BIN固件(三选一)
make V=99 #生成固件并显示成生的每一个步奏及正确性。速度最慢,建议首次生成时使用(3小时左右)。 make V=s #生成固件忽略不影响固件主功能的错误 make -j4 V=s #调用CPU全部性能来生成固件,相对速度最快,但首次生成时不建议使用。
opkg 工具 (一个 ipkg 变种) 是一个用来从本地软件仓库或互联网软件仓库上下载并安装 OpenWrt 软件包的轻量型软件包管理器。
GNU/Linux 用户可能会对 apt-get
,aptitude
,pacman
,yum
等比较熟悉,也会看出其相似之处。它与 NSLU2 上同样用于嵌入式设备的 Optware
也有相似之处。OPKG 没有仅仅将软件安装到一个单独的路径(如:/opt
),而是根文件系统上的一个完整的包管理器。它也包含了增加内核模块与驱动的可能性。OPKG 有时被称为 Entware ,但这主要是针对为嵌入式设备准备的 Entware 仓库。
opkg 试图在软件包仓库内来解决依赖关系。如果失败了,它将会报告一个错误并停止安装该软件包。
如果丢失第三方包的依赖关系,源码包依然可用的话,为了忽略依赖关系的错误可以使用 –force-depends
选项。
请注意: 如果你在使用一个 snapshot 、trunk 或 bleeding edge 版本,在仓库中的软件包适用内核版本比你的 Flash 上的内核更高,
opkg install <pkg>
可能会失败。这种情况下,会报错『Cannot satisfy the following dependencies for…』。参见OpenWrt FAQ
update |
更新可用软件包列表 此命令直接为你安装的 OpenWrt 获取一个类似样例的文件,保存到内存分区的 /tmp/opkg-lists/snapshots 中。现在大约占用 1.3MB 空间。OPKG 需要它的内容才能安装、升级软件包或打印软件包信息。此文件内容须体现软件仓库中当前的可用软件包。为释放内存空间,你可以安全地删除这个文件,但不要忘记在安装软件前重新获取一个。 |
upgrade <pkgs> |
升级软件包 要升级一组软件包,运行 opkg upgrade软件包名1 软件包名2 即可。命令 opkg list-upgradable 可以获取一个可升级软件包的列表。通常我们不推荐普通用户去升级软件包,因为一个典型的 OpenWrt 系统是存储在只读的 SquashFS 文件系统中。同时当升级工作做完后,使用了远超出在 SquashFS 文件系统或 JFFS2 文件系统默认安装基本软件包的容量。 因此,推荐用刷一个更新的 OpenWrt 固件来代替升级软件包。当然,升级已安装的软件包没有这种问题。Keep in mind though that for OpenWrt releases upgrading is for the most part not possible, since there is nothing to upgrade without changing the package repository. This is because the package repositories for OpenWrt’s releases are generally not updated. However, the package repository in the trunk snapshots are updated by the build bots to new versions very often, as this is where the packages are updated, like the OpenWrt builds themselves. Note however that for kernel packages updating can be a risky business as it may brick the device if the trunk build kernel is incompatible with the new upgraded kernel package. You should therefore only upgrade non-kernel packages. |
install <pkgs|FQDN> |
安装一个或多个软件包 例如: opkg install hiawatha opkg install http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/hiawatha_7.7-2_ar71xx.ipk opkg install /tmp/hiawatha_7.7-2_ar71xx.ipk |
configure <pkgs> |
配置一个或多个未安装的包 |
remove <pkgs|globp> |
移除一个或多个软件包 |
flag <flag> <pkgs> |
标记一个或多个软件包 每次调用仅允许一个标记。可用标记有: hold • noprune • user • ok • installed • unpacked |
list [pkg|globp] |
列出可用软件包
Package name - Version - Description 描述信息 (Description) 可能包含换行,so using merely grep is inapt since grep is line-based. |
list-installed |
列出已安装软件包 |
list-upgradable |
列出可升级的已安装软件包 |
list-changed-conffiles |
列出用户修改过的配置文件 |
files <pkg> |
列出属于软件包 <pkg> 的文件仅适用于已安装的软件包。例如: opkg files asterisk18 Package asterisk18 (1.8.4.4-1) is installed on root and has the following files: /usr/lib/asterisk/modules/res_rtp_multicast.so /usr/lib/asterisk/modules/codec_ulaw.so /etc/asterisk/features.conf /usr/lib/asterisk/modules/format_wav_gsm.so /usr/lib/asterisk/modules/app_macro.so /usr/lib/asterisk/modules/chan_sip.so /usr/lib/asterisk/modules/app_dial.so /usr/lib/asterisk/modules/app_playback.so /usr/lib/asterisk/modules/format_gsm.so /usr/lib/asterisk/modules/func_callerid.so /usr/lib/asterisk/modules/func_timeout.so /etc/asterisk/asterisk.conf /etc/asterisk/modules.conf /usr/lib/asterisk/modules/format_wav.so /etc/asterisk/extensions.conf /etc/init.d/asterisk /etc/asterisk/manager.conf /usr/lib/asterisk/modules/res_rtp_asterisk.so /etc/asterisk/logger.conf /etc/asterisk/rtp.conf /usr/lib/asterisk/modules/codec_gsm.so /etc/asterisk/indications.conf /usr/lib/asterisk/modules/func_strings.so /usr/lib/asterisk/modules/app_echo.so /usr/lib/asterisk/modules/format_pcm.so /etc/asterisk/sip_notify.conf /etc/asterisk/sip.conf /etc/default/asterisk /usr/sbin/asterisk /usr/lib/asterisk/modules/pbx_config.so /usr/lib/asterisk/modules/func_logic.so |
search <file|globp> |
列出包含 <file> |
info [pkg|globp] |
显示软件包 <pkg> 的所有信息
Package: horst Version: 2.0-rc1-2 Depends: libncurses Provides: Status: install user installed Section: net Architecture: ar71xx Maintainer: Bruno Randolf <br1@einfach.org> MD5Sum: 378cea9894ec971c419876e822666a6a Size: 19224 Filename: horst_2.0-rc1-2_ar71xx.ipk Source: feeds/packages/net/horst Description: [horst] is a scanning and analysis tool for 802.11 wireless networks and especially IBSS (ad-hoc) mode and mesh networks (OLSR).
|
status [pkg|globp] |
显示软件包 <pkg> 的状态 |
download <pkg> |
下载软件包 <pkg> 到当前目录 |
compare-versions <v1> <op> <v2> |
使用关系符 <= ,< ,> ,>= ,= ,<< 或 >> 来比较两个版本 v1 和 v2 。 |
print-architecture |
列出可安装软件包的结构 |
whatdepends [-A] [pkgname|pat]+ |
仅适用于已安装的软件包。所以如果你想知道一个软件包及其所有依赖占用的空间,你只能将这个选项的输出分拆后传给 info 选项来计算。 |
whatdependsrec [-A] [pkgname|pat]+ |
仅适用于已安装的软件包。所以所以如果你想知道一个软件包及其所有依赖占用的空间,你只能将这个选项的输出分拆后传给 info 选项来计算。 |
whatprovides [-A] [pkgname|pat]+ |
|
whatconflicts [-A] [pkgname|pat]+ |
|
whatreplaces [-A] [pkgname|pat]+ |
短选项 | 长选项 | 描述 |
---|---|---|
-A |
查询全部软件包(不仅是已安装的) | |
-V[<level>] |
--verbosity[=<level>] |
设置『唠叨』级别为 <level> 。可用的级别有: 0 仅错误 1 普通消息(缺省情况) 2 有用的消息 3 调试 4 调试等级2 |
-f <conf_file> |
--conf <conf_file> |
设置 opkg 配置文件为 <conf_file> 。缺省为 /etc/opkg.conf |
--cache <directory> |
指定包缓存 | |
-d <dest_name> |
--dest <dest_name> |
设置软件包安装、删除、升级的根目录为 <dest_name> 。<dest_name> 应为已在配置文件中定义的目的名称(but can also be a directory name in a pinch)。 |
-o <dir> |
--offline-root <dir> |
指定离线安装软件包的根目录。 |
--add-arch <arch>:<prio> |
注册架构及其优先级 | |
--add-dest <name>:<path> |
注册目的名及其路径 | |
强制性选项 | ||
--force-depends |
在安装、删除软件包时无视失败的依赖 | |
--force-maintainer |
覆盖已经存在的配置文件 | |
--force-reinstall |
重安装软件包 | |
--force-overwrite |
覆盖其它软件包的文件 | |
--force-downgrade |
允许 opkg 降级软件包 | |
--force-space |
禁用可用空间检查 | |
--force-checksum |
忽略校验和失配 | |
--force-postinstall |
离线模式下仍运行安装后脚本 | |
--noaction |
无操作 – 仅测试 | |
--download-only |
无操作 – 仅下载 | |
--nodeps |
不跟踪依赖 | |
--force-removal-of-dependent-packages |
移除软件包的同时,移除其所有依赖软件包 | |
--autoremove |
移除自动安装以满足依赖的软件包 | |
-t |
--tmp-dir |
指定临时目录 |
要安装软件包,执行下列命令。注意重启设备会使可用软件包列表丢失,所以在试图安装软件包之前务必更新列表。
opkg update opkg install <package>
opkg list
仅会显示 包名 — 版本 — 描述
opkg info
会显示全部可用信息你可以直接使用 glob 模式,或者写个小的 Shell 脚本来使用正则表达式或进一步的进程信息。使用管道(|
)以及 grep
、awk
或 sed
指令来过滤输出:
opkg list | grep pattern
opkg list | awk '/pattern/ {print $0}
opkg info kmod-ipt-* | awk '/length/ {print $0}
‘opkg list-installed | awk '{print $1}' | sed ':M;N;$!bM;s#\n# #g
‘var="packagename1 packagename2 packagename2"; for i in $var; do opkg info $i; done;
opkg depends dropbear
并不会起作用。唯一的配置文件是 /etc/opkg.conf
,它可能看起来是这样:
src/gz snapshots http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages dest root / dest ram /tmp lists_dir ext /var/opkg-lists option overlay_root /overlay
你可以配置 opkg 从本地获取软件包:
src/gz local file:///path/to/packagesDirectory
Barrier_breaker 使用多个仓库,每个参考需要个唯一的标识符。逻辑上使用仓库原始的名称。如:
... src/gz base file:///path/to/packages/directory/packages/base src/gz luci file:///path/to/packages/directory/packages/luci src/gz packages file:///path/to/packages/directory/packages/packages src/gz oldpackages file:///path/to/packages/directory/packages/oldpackages ... etc ...
r=44685 search="http://downloads.openwrt.org/snapshots/trunk/ar71xx/generic" replace="file:///mnt/sdcard/shared/users/www/r$r" sed -i -e "s!$search!$replace!" /etc/opkg.conf
共享给第二个路由器:
ln -s /mnt/sdcard/shared/users/www /www/pendrive
在第二个路由器上:
r=44685 search="downloads.openwrt.org/snapshots/trunk/ar71xx/generic" replace="192.168.1.1/pendrive/r$r" sed -i -e "s!$search!$replace!" /etc/opkg.conf
缺省情况下,opkg 仅操作标记架构为 all
(即架构无关)或与目标平台相同的软件包。要从外引入兼容目标平台的软件包,可以在 opkg.conf
中使用 arch
选项追加可用的架构。
arch all 100 arch brcm4716 200 arch brcm47xx 300
上面的例子将允许将 brcm47xx
(即 SoC 系列)软件包安装到 brcm4716
(某特定的 SoC)平台。行尾的数字向 opkg
指定了优先级索引,以便在有多个可用包时选择最合适的那个。
要透过代理使用 opkg
,在 /etc/opkg.conf
中添加:
option http_proxy http://proxy.example.org:8080/ option ftp_proxy ftp://proxy.example.org:2121/
使用以下设置来进行代理服务器的认证:
option proxy_username xxxx option proxy_password xxxx
有时,因为 busybox 中 wget 的限制,代理服务器的认证可能失败。这时,可以尝试在代理服务器的 URL 中传入用户名和密码:
option http_proxy http://username:password@proxy.example.org:8080/ option ftp_proxy http://username:password@proxy.example.org:2121/
使用 extroot 就足够了,无需进一步配置。
opkg 有个不为那些 apt 系工具使用者熟悉的有用特性,它可以为任一软件包指定安装目的位置。
许多软件包不可重新定位,且可能无法干净地安装到非根目录下!像 LuCI 就会找不到它的模块,且若不手动修复就不能工作!使用 Extroot 吧!
别指望这个办法能『拆箱即用』,大多软件包需要额外的符号链接或 hack 才能在改变的路径下正常工作!
事实上,默认的 opkg.conf 包含三个目的位置:
dest root / dest ram /tmp dest mnt /mnt
目的位置行的格式很简单,关键字 dest
跟着目的位置名称(可以随便起),然后就是文件系统位置。任一如上配置好的目的位置都可以在 opkg 命令行中使用,如:
opkg install somepackage -d destination_name
dest 参数必须为 /etc/opkg.conf
中定义的目的位置名。如:-d ram
会将软件包安装到 /tmp/
下。
若要在非根的目的位置安装内核模块,你可能要先读下<red>这个</red>。
首先 mount 到外部文件系统,操作帮助见 Mounting Filesystems 。然后编辑 /etc/opkg.conf
:
dest usb /opt
/mnt/sda1
):
ln -s /mnt/sda1 /opt
opkg -d ram
将软件包安装到了 tmp
文件夹,你需要加个新的 bin 和 lib 路径:
export PATH=$PATH:/tmp/usr/bin/ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/tmp/usr/lib/
/etc/profile
,为你的 PATH
变量追加挂载点:
export PATH=<current default path>:/opt/bin:/opt/sbin:/opt/usr/bin:/opt/usr/sbin export LD_LIBRARY_PATH=<current default LD library path>:/opt/lib:/opt/usr/lib
opkg update opkg -dest usb install asterisk14 # or whatever else you want…
ln -s /usb/etc/init.d/openvpn /etc/init.d/openvpn
LD_LIBRARY_PATH
:
export LD_LIBRARY_PATH=/lib:/usr/lib:/tmp/lib:/tmp/usr/lib:/usb/lib:/usb/usr/lib
/etc/opkg.conf
,为预期的挂载点加入个新的目的位置或:/usr/lib/opkg
目录的内容复制到你的挂载点。比如 USB 磁盘。/etc/rc.local
could be one place where to map the directories.example:
mount --bind /mnt/usb/root /root mount --bind /mnt/usb/usr/local /usr/local mount --bind /mnt/usb/home /home
对于包含库的软件包,若安装到了外部磁盘,需要配置才能找到。 安装 ldconfig
并在 /etc/ld.so.conf
中列出附加库路径会解决这个问题。在新库安装后,必须执行过 ldconfig
。它可以被安装到外部磁盘。在启动时执行一次它也许是个好主意。也许是在 /etc/rc.local
中。
安装到非标准位置的内核模块有可能不会自动加载,这时就需要手动插入内核。例如,在把 libdevmapper 安装到 /mnt 下面后,插入此模块:
insmod /mnt/lib/modules/2.6.36.4/dm-mod.ko
你可以把守护进程和『内核』服务安装到内部 Flash 中,把可选的软件包安装到外部挂载点。启动过程中,若外部磁盘被挂载,外部目录的可执行文件(<挂载点>/[bin,sbin,usr/bin,usr/sbin]
)会被加进 PATH
变量。路由器通过这种方式继续提供相关服务,即使外部存储已经离线。
软件包若安装到外部驱动器中,可能引发下列问题:
file
#!/bin/sh /mnt/usb/usr/bin/file -m /mnt/usb/usr/share/file/magic "$@"
after saving the script, and making it executable (chmod +x /path/of/script/file), executing once “hash -r” may or may not be needed.
netcat
nfsd
/etc/init.d/nfsd
contains hardcoded paths to executables on /usr/sbin
/etc/init.d/nfsd
, by changing those paths to updated location.lvm2
/etc/init.d/lvm2
contains hardcoded paths to executables on /sbin
/etc/init.d/lvm2
, by changing these paths to updated location.More information on installing and using ldconfig
can be found in this article.
Some programs need additional config files to run, and you will have to create soft links between the root filesystem and the external storage one (e.g. USB). As an example, to successfully run Midnight Commander after installing it on a USB stick, you must run:
ln -s $USB/usr/share/terminfo/ /usb/share/ ln -s $USB/etc/mc /etc/mc
若 opkg 耗尽了存储空间,它通常会报告个 Could not obtain administrative lock
错误,表示没有干净地恢复孤悬的文件锁。可以调用 rm /usr/lib/opkg/lock
命令来删除这个文件锁。
除此之外,opkg 可能不会删除之前安装的文件。
处理此事的一种办法是获取一个之前安装的文件的列表,然后删除它们。
将 URL 替换为相应的包:
(cd /; \ wget -qO- http://downloads.openwrt.org/snapshots/trunk/ar7/packages/6in4_10-1_all.ipk | \ tar -Oxz ./data.tar.gz | tar -tz | xargs rm)
然而,上述代码并没有可靠地删除那些伴随软件包安装进去的依赖软件包。它也遗留下了那些空目录。这个脚本尝试修正这些问题:
#!/bin/sh #takes one argument/parameter: the name of the package which didn't install correctly and should be removed along with its dependencies #do opkg update first #example: ./opkgremovepartlyinstalledpackage.sh pulseaudio-daemon #get list of all packages that would be installed along with package x opkg update PACKAGES=`opkg --force-space --noaction install $1 | grep "http:" | cut -f 2 -d ' ' | sed 's/.$//'` for i in $PACKAGES do LIST=`wget -qO- $i | tar -Oxz ./data.tar.gz | tar -tz | sort -r | sed 's/^./\/overlay/'` for f in $LIST do if [ -f $f ] then echo "Removing file $f" rm -f $f fi if [ -d $f ] then echo "Try to remove directory $f (will only work on empty directories)" rmdir $f fi done done echo "You may need to reboot for the free space to become visible"
将之保存在你的 OpenWrt 设备上,命名为 opkgclean.sh
,设置为可执行 chmod +x ./opkgclean.sh
,然后你可以这样执行它 ./opkgclean.sh <package-name>
。
要使 opkg 的输出有颜色,可以用 http://pastie.org/5464938.
To find installed pkgs of a specific install target (ex. USB) (DRAWBACK!!! if any update availlable, it will update the package, just be warned!!!):
for pkg in `opkg list-installed | sed -e "s/^([0-9A-Za-z\-]+) - .*$/\1/p" -n`; do opkg install $pkg; done | grep -i installed\ in\ <TARGET>
来源:http://www.tudoupe.com时间:2016-06-27
黑群晖有很多地方没有办法使用,因为没有洗白,使用moments时,上传的视频没有缩略图,还有使用video station时没有办法转码,我想是不是可以通过其他的手段来解决这些呢?后来我在网上看到,可以使用ffmpeg来解决转码的问题,因为官方本来就自带ffmpeg,在官方提供的套件上找不到ffmpeg这个套件,只有通过第三方的套件中心来解决。
当然我也不知道通过自己安装ffmpeg是否能够解决转码或缩略图的问题,不过今天我打算试上一试,那么我先来安装ffmpeg这个套件,我先在自己的黑群晖添加第三方套件Synocommunity,这个比较简单就是添加一个网址。
Synocommunity
https://packages.synocommunity.com/
选择任何发行者
增加Synocommunity
设置完成之后选择左下角的社群后,在套件中心里找到ffmpeg安装即可,这里同时可以找到python3并且安装,作为中级电脑低手的我对于其作用并不明确,但是因为代码是拿python3写的,所以我装了。
由于需要用到ssh,在浏览器界面找到SSH并打开,windows用户下载putty,linux和osx可以直接用命令行连接服务器,我用的是osx所以无法在这里演示putty的使用方法,所以请自行百度一下;osx的用户打开终端之后输入ssh root@192.168.1.x(NAS的局域网ip地址)之后输入管理员密码即可。
登陆NAS之后,输入ffmpeg -version即可查看当前ffmpeg的版本号,如果和你在套件中心安装的ffmpeg版本号不同那么执行如下操作:
mv /usr/bin/ffmpeg /usr/bin/ffmpeg_bak
cp -r /usr/local/ffmpeg/bin/ffmpeg /usr/bin/ffmpeg
安装python3:
mv /usr/bin/python /usr/bin/python_bak
cp -r /usr/local/python3/bin/python3 /usr/bin/python
python –version
如果显示python 版本为3.5即表明完成
再次执行ffmpeg -version查看ffmpeg的版本号
显示版本号为4.1,与套件中心显示的4.1-11一致
脚本下载链接
建议创建一个新的共享文件夹作为测试,里面拷贝一些测试的视频。
通过网页登陆DSM将代码上传的共享文件夹根目录后,执行:
python /volume1/xxx/photo_thumb.py(这里的路径就是上传代码的文件路径)
中文字似乎会乱码但是生成的缩略图正常
默认会生成mp4、avi、wmv、mkv、flv文件的缩略图,其他格式的如有需要,在代码types的中括号里添加文件格式并用英文逗号隔开,外面添加英文单引号即可。
ffmpeg默认不能生成rmvb和rm的缩略图,由于我这里测试发现VideoStation自己会生成rmvb的缩略图,所以并不提供解决办法。
最后在任务计划里添加把之前python运行的命令添加进去设置每天运行就可以了,如果添加了新的共享文件夹需要增加对应的命令,脚本会对文件夹进行遍历,所以有子文件夹时只需要在根目录运行脚本就可以。
本人的群晖是在淘宝网购买的蜗牛星际主机来搭建的,使用群晖的DS918+ DSM 6.2-23739软件。目前使用了两个多月很正常的,但是我安装群晖的moments和video station后,发现有一些问题,就是无法正常转码,moments上传的小视频无法获得缩略图,后来通过第三方套件来安装ffmpeg来解决无法获得缩略图的问题,不过video station转码功能还是无法使用,经过百度搜索发现通过DDSM半洗白能够解决这个问题,经过我自己的操作以后,目前video station的转码功能可以正常使用了。
1、安装:先通过套件中心后安装好docker
2、首次使用docker前需要在控制面板—网络—网络界面—管理—启用open vswitch
3、完成设置之后进入docker套件界面选择DSM,创建DDSM容器,然后一直下一步
4、至选择DDSM安装文件界面,点击“立即下载”,下载DDSM安装文件至本地,文件版本应该和群晖自身版本有关,下载文件名为DSM_DDSM_23739.pat
5、然后浏览手动上传刚刚下载的DSM_DDSM_23739.pat,继续下一步直至DDSM容器创建成功后,在docker界面点击DSM开机按钮
6、之后通过DDSM的IP地址(如果选取的是自动分配就去路由器里查看DDSM分配的IP地址)进入DDSM,查看“产品序列号”并记
也可以参阅本人的《群晖安装成功后,通过SSH修改黑群晖DS3617 DS918+的SN/MAC》文章通过ssh方法修改SN。
7、进入VIDEO STATION
进入video station后,通过设置 公开共享,允许转码来启用转码功能。
发布时间:2020-04-18 14:44发布者:系统城-lufang浏览数:141
MAC用户在安装系统时都喜欢使用boot Camp来进行安装。但近日却有用户却发现bootcamp没有创建win7安装盘选项的情况,那么我们要如何解决这一问题呢?可能很多不是很清楚,那么下面小编就来为大家分享关于bootcamp没有创建win7安装盘选项的解决方法。
推荐下载:
解决方法如下:
1、当我们打开boot Camp助理时是没有“创建windows安装盘”的这一项的;
2、我们打开Finder—实用工具—找到boot Camp助理(显示包内容)—Contents中找到Info.plist这个文件,把Info.plist复制到桌面或者其它地方来修改它;
3、修改我用红色圈住的部份,这几个步骤是关键,请慢慢往下看;
4、打开关于本机—更多信息—系统报告后你就会看你的电脑的信息了,看到boot ROM版本这个就是你要改的信息了,把你自己看到的boot ROM版本信息复制到DARequiredROMVersions
5、下面的是改的部份
<string>MBA11.00BB.B03</string>
6、然后再修改一下USBBootSupportedModels
<array>的下面
<string>MBA11</string>
7、要说明的是这一步,在这里你这里修改的内容是把你看到的boot ROM版本的信息只保留小数点前的就行了;
8、最后把你修改好的这个Info.plist文件复制到原来的位置就OK了!
最近在给MacBook Air安装Windows系统时,出现了一个让我恶心无比的问题。我用MacBook Air的Boot Camp助理制作的Win7启动盘,具体方法不是文章的重点,请参照
在 Mac 上通过“启动转换助理”安装 Windows 10在 Mac 上使用“启动转换”安装 Windows 7
Mac上安装双系统(传统BootCamp傻瓜式)图文教程
在分区结束后,系统重新启动,然后…DOS界面显示“No bootable device–insert boot disk and press any key”
之后就是无尽的等待,故障依旧。又试着移除系统,再次安装,故障依旧。又试着重新制作系统启动盘,故障依旧……
按照字面上的意思,错误应该是MacBook Air没有找到我的Win7启动盘的引导导致的。因为之前电脑已经安装过Win7系统,被我暴力格式化了Boot Camp分区,然后我的Mac OS X整体崩溃,通过远程恢复最终才将Mac OS X恢复,那问题可能是的电脑本身或者是制作的Win7安装盘两者的问题。
请依据可能的问题选择性排障,无先后顺序,建议先排除U盘的问题,最终我的问题就出现在Win7安装盘,换了一个U盘重启后正常启动。
一、电脑本身的问题
*开机选择启动盘。苹果电脑是用EFI的,没有BIOS,唯一可以设置的是开机的启动选项。开机后按option+R,然后选择启动盘。
*在Mac上重置NVRAM或PRAM。Mac 会将某些设置储存在特殊内存区域中,而且即使关机这些设置也不会丢失(之前安装过Windows会有这种情况)。 在基于 Intel 的 Mac 上,存储位置是称为 NVRAM 的内存;而在基于 PowerPC 的 Mac 上,存储位置则是称为 PRAM 的内存。
Reset NVRAM or PRAM on your Mac具体做法:重新启动苹果电脑,启动时以最快速度同时按住Option、Command、P、R这四个键,不要放手,听到“噹——”一声的开机声时仍不要放手,让机器自动启动三次,也就是“噹——”三次,第三次启动开放手,就可以了。
貌似这个方法还对音响播放网页视频和音乐有电流声的问题有奇效,未验证 。
*重置系统管理控制器SMC(拆机)
具体做法:将MacBook Air后盖打开,将电池连接线拔下,15秒后重新将电池连接,安装操作。
二、制作Win7安装盘的问题(几乎大部分出现问题的机器都是这个原因,因为提示的是没有引导文件导致无法正常引导)
*请查询您的Mac电脑是否支持使用U盘安装,部分机型不支持使用U盘安装。
Boot Camp 驱动*请确保您的U盘不是USB3.0,Win7无法使用USB3.0进行引导。
*出现问题后换一个U盘,依照如下步骤对U盘进行操作:
1、在Windows电脑上对U盘进行格式化,格式选择“FAT32(默认)”
2、重新进入 Mac 系统,打开 BootCamp 应用,先删除之前已经创建好了的 Windows 分区。
3、把用于安装 Windows 系统的安装 U 盘插入到电脑中,打开Boot Camp助理,分区,用下载好的Windows系统镜像制作系统安装盘,自动重新启动。注意,此时请不要插入其它移动硬盘或U盘,只保留安装U盘。
4、最后重新启动以后,即可成功从 U 盘启动,进入 Windows 的安装界面了。
netfilter/iptables(简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换(NAT)等功能。
iptables基础
规则(rules)其实就是网络管理员预定义的条件,规则一般的定义为“如果数据包头符合这样的条件,就这样处理这个数据包”。规则存储在内核空间的信息 包过滤表中,这些规则分别指定了源地址、目的地址、传输协议(如TCP、UDP、ICMP)和服务类型(如HTTP、FTP和SMTP)等。当数据包与规 则匹配时,iptables就根据规则所定义的方法来处理这些数据包,如放行(accept)、拒绝(reject)和丢弃(drop)等。配置防火墙的 主要工作就是添加、修改和删除这些规则。
iptables和netfilter的关系:
这是第一个要说的地方,Iptables和netfilter的关系是一个很容易让人搞不清的问题。很多的知道iptables却不知道 netfilter。其实iptables只是Linux防火墙的管理工具而已,位于/sbin/iptables。真正实现防火墙功能的是 netfilter,它是Linux内核中实现包过滤的内部结构。
iptables传输数据包的过程
① 当一个数据包进入网卡时,它首先进入PREROUTING链,内核根据数据包目的IP判断是否需要转送出去。
② 如果数据包就是进入本机的,它就会沿着图向下移动,到达INPUT链。数据包到了INPUT链后,任何进程都会收到它。本机上运行的程序可以发送数据包,这些数据包会经过OUTPUT链,然后到达POSTROUTING链输出。
③ 如果数据包是要转发出去的,且内核允许转发,数据包就会如图所示向右移动,经过FORWARD链,然后到达POSTROUTING链输出。
iptables的规则表和链:
表(tables)提供特定的功能,iptables内置了4个表,即filter表、nat表、mangle表和raw表,分别用于实现包过滤,网络地址转换、包重构(修改)和数据跟踪处理。
链(chains)是数据包传播的路径,每一条链其实就是众多规则中的一个检查清单,每一条链中可以有一 条或数条规则。当一个数据包到达一个链时,iptables就会从链中第一条规则开始检查,看该数据包是否满足规则所定义的条件。如果满足,系统就会根据 该条规则所定义的方法处理该数据包;否则iptables将继续检查下一条规则,如果该数据包不符合链中任一条规则,iptables就会根据该链预先定 义的默认策略来处理数据包。
Iptables采用“表”和“链”的分层结构。在REHL4中是三张表五个链。现在REHL5成了四张表五个链了,不过多出来的那个表用的也不太多,所以基本还是和以前一样。下面罗列一下这四张表和五个链。注意一定要明白这些表和链的关系及作用。
规则表:
1.filter表——三个链:INPUT、FORWARD、OUTPUT
作用:过滤数据包 内核模块:iptables_filter.
2.Nat表——三个链:PREROUTING、POSTROUTING、OUTPUT
作用:用于网络地址转换(IP、端口) 内核模块:iptable_nat
3.Mangle表——五个链:PREROUTING、POSTROUTING、INPUT、OUTPUT、FORWARD
作用:修改数据包的服务类型、TTL、并且可以配置路由实现QOS内核模块:iptable_mangle(别看这个表这么麻烦,咱们设置策略时几乎都不会用到它)
4.Raw表——两个链:OUTPUT、PREROUTING
作用:决定数据包是否被状态跟踪机制处理 内核模块:iptable_raw
(这个是REHL4没有的,不过不用怕,用的不多)
规则链:
1.INPUT——进来的数据包应用此规则链中的策略
2.OUTPUT——外出的数据包应用此规则链中的策略
3.FORWARD——转发数据包时应用此规则链中的策略
4.PREROUTING——对数据包作路由选择前应用此链中的规则
(记住!所有的数据包进来的时侯都先由这个链处理)
5.POSTROUTING——对数据包作路由选择后应用此链中的规则
(所有的数据包出来的时侯都先由这个链处理)
规则表之间的优先顺序:
Raw——mangle——nat——filter
规则链之间的优先顺序(分三种情况):
第一种情况:入站数据流向
从外界到达防火墙的数据包,先被PREROUTING规则链处理(是否修改数据包地址等),之后会进行路由选择(判断该数据包应该发往何处),如果数据包 的目标主机是防火墙本机(比如说Internet用户访问防火墙主机中的web服务器的数据包),那么内核将其传给INPUT链进行处理(决定是否允许通 过等),通过以后再交给系统上层的应用程序(比如Apache服务器)进行响应。
第二冲情况:转发数据流向
来自外界的数据包到达防火墙后,首先被PREROUTING规则链处理,之后会进行路由选择,如果数据包的目标地址是其它外部地址(比如局域网用户通过网 关访问QQ站点的数据包),则内核将其传递给FORWARD链进行处理(是否转发或拦截),然后再交给POSTROUTING规则链(是否修改数据包的地 址等)进行处理。
第三种情况:出站数据流向
防火墙本机向外部地址发送的数据包(比如在防火墙主机中测试公网DNS服务器时),首先被OUTPUT规则链处理,之后进行路由选择,然后传递给POSTROUTING规则链(是否修改数据包的地址等)进行处理。
管理和设置iptables规则
iptables的基本语法格式
iptables [-t 表名] 命令选项 [链名] [条件匹配] [-j 目标动作或跳转]
说明:表名、链名用于指定 iptables命令所操作的表和链,命令选项用于指定管理iptables规则的方式(比如:插入、增加、删除、查看等;条件匹配用于指定对符合什么样 条件的数据包进行处理;目标动作或跳转用于指定数据包的处理方式(比如允许通过、拒绝、丢弃、跳转(Jump)给其它链处理。
iptables命令的管理控制选项
-A 在指定链的末尾添加(append)一条新的规则
-D 删除(delete)指定链中的某一条规则,可以按规则序号和内容删除
-I 在指定链中插入(insert)一条新的规则,默认在第一行添加
-R 修改、替换(replace)指定链中的某一条规则,可以按规则序号和内容替换
-L 列出(list)指定链中所有的规则进行查看
-E 重命名用户定义的链,不改变链本身
-F 清空(flush)
-N 新建(new-chain)一条用户自己定义的规则链
-X 删除指定表中用户自定义的规则链(delete-chain)
-P 设置指定链的默认策略(policy)
-Z 将所有表的所有链的字节和数据包计数器清零
-n 使用数字形式(numeric)显示输出结果
-v 查看规则表详细信息(verbose)的信息
-V 查看版本(version)
-h 获取帮助(help)
防火墙处理数据包的四种方式
ACCEPT 允许数据包通过
DROP 直接丢弃数据包,不给任何回应信息
REJECT 拒绝数据包通过,必要时会给数据发送端一个响应的信息。
LOG在/var/log/messages文件中记录日志信息,然后将数据包传递给下一条规则
iptables防火墙规则的保存与恢复
iptables-save把规则保存到文件中,再由目录rc.d下的脚本(/etc/rc.d/init.d/iptables)自动装载
使用命令iptables-save来保存规则。一般用
生成保存规则的文件 /etc/sysconfig/iptables,
也可以用
它能把规则自动保存在/etc/sysconfig/iptables中。
当计算机启动时,rc.d下的脚本将用命令iptables-restore调用这个文件,从而就自动恢复了规则。
删除INPUT链的第一条规则
iptables -D INPUT 1
iptables防火墙常用的策略
1.拒绝进入防火墙的所有ICMP协议数据包
2.允许防火墙转发除ICMP协议以外的所有数据包
说明:使用“!”可以将条件取反。
3.拒绝转发来自192.168.1.10主机的数据,允许转发来自192.168.0.0/24网段的数据
说明:注意要把拒绝的放在前面不然就不起作用了啊。
4.丢弃从外网接口(eth1)进入防火墙本机的源地址为私网地址的数据包
5.封堵网段(192.168.1.0/24),两小时后解封。
说明:这个策略咱们借助crond计划任务来完成,就再好不过了。
[1] Stopped at now 2 hours
6.只允许管理员从202.13.0.0/16网段使用SSH远程登录防火墙主机。
说明:这个用法比较适合对设备进行远程管理时使用,比如位于分公司中的SQL服务器需要被总公司的管理员管理时。
7.允许本机开放从TCP端口20-1024提供的应用服务。
8.允许转发来自192.168.0.0/24局域网段的DNS解析请求数据包。
9.禁止其他主机ping防火墙主机,但是允许从防火墙上ping其他主机
10.禁止转发来自MAC地址为00:0C:29:27:55:3F的和主机的数据包
说明:iptables中使用“-m 模块关键字”的形式调用显示匹配。咱们这里用“-m mac –mac-source”来表示数据包的源MAC地址。
11.允许防火墙本机对外开放TCP端口20、21、25、110以及被动模式FTP端口1250-1280
说明:这里用“-m multiport –dport”来指定目的端口及范围
12.禁止转发源IP地址为192.168.1.20-192.168.1.99的TCP数据包。
说明:此处用“-m –iprange –src-range”指定IP范围。
13.禁止转发与正常TCP连接无关的非—syn请求数据包。
说明:“-m state”表示数据包的连接状态,“NEW”表示与任何连接无关的,新的嘛!
14.拒绝访问防火墙的新数据包,但允许响应连接或与已有连接相关的数据包
说明:“ESTABLISHED”表示已经响应请求或者已经建立连接的数据包,“RELATED”表示与已建立的连接有相关性的,比如FTP数据连接等。
15.只开放本机的web服务(80)、FTP(20、21、20450-20480),放行外部主机发住服务器其它端口的应答数据包,将其他入站数据包均予以丢弃处理。
iptables -I INPUT -p tcp -m multiport –dport 20,21,80 -j ACCEPT
iptables -I INPUT -p tcp –dport 20450:20480 -j ACCEPT
iptables -I INPUT -p tcp -m state –state ESTABLISHED -j ACCEPT
iptables -P INPUT DROP
文章参考 http://netfilter.org/ iptables官方网站
http://www.linux.gov.cn/netweb/iptables.htm iptables配置手册
http://man.chinaunix.net/
http://man.chinaunix.net/network/iptables-tutorial-cn-1.1.19.html iptables配置手册
http://blog.csdn.net/thmono/archive/2010/04/08/5462043.aspx
http://netsecurity.51cto.com/art/200512/14457.htm
http://blog.sina.com.cn/s/blog_40ba724c0100jz12.html
http://qiliuping.blog.163.com/blog/static/1023829320105245337799/
这篇文章成功解决了windows下远程连接 kali 的一些问题,免去了网上一些教程中提到的卸载桌面再安装桌面的步骤。
本篇教程的系统环境为:
windows 7 专业版
kali linux 2016-2
Step 1:安装xrdp
# apt-get install xrdp
Step 2:安装vnc4server
# apt-get install vnc4server
Step 3:编辑xrdp配置文件
# nano /etc/xrdp/xrdp.ini
为了防止出现诸如以下错误,需对该配置文件进行修改。
将原来max_bpp=32改成max_bpp=16,以防止远程连接时闪退。
Step 4:开启xrdp服务
# service xrdp start
# service xrdp-sesman start
Step 5:开启VNC服务
# cnvserver
输入连接密码
Step 6:在windows下运行mstsc
因为远程服务器将颜色调成了32位,所以我们需要在本地上调整颜色深度。
这里选择Xvnc,然后输入用户、密码。
可以看到成功连接到kali。
先到jdk官方下载地址下载 .gz 格式的安装包,下载前要接受协议
进入下载目录,对文件进行解压
cd ~/下载
tar -xzvf jdk-11.0.1_linux-x64_bin.tar.gz
#记住11.0.1,在后面很重要
移动解压的文件
mv jdk-11.0.1 /opt
//jdk-后的东西由前面记着的版本来定
cd /opt/jdk-11.0.1
gedit ~/.bashrc
在底部添加
#install JAVA JDK
export JAVA_HOME=/opt/jdk-11.0.1
export CLASSPATH=.:${JAVA_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
保存后执行使设置生效
source ~/.bashrc
执行
update-alternatives --install /usr/bin/java java /opt/jdk-11.0.1/bin/java 1
update-alternatives --install /usr/bin/javac javac /opt/jdk-11.0.1/bin/javac 1
update-alternatives --set java /opt/jdk-11.0.1/bin/java
update-alternatives --set javac /opt/jdk-11.0.1/bin/javac
输入java
成功!
end~
一、查找效果图
二、查找步骤
1、首先确认是否已按照JDK
java -version
[root@iZ2ze3zda3caeyx6pn7c5zZ base-eureka]# java -version
openjdk version “1.8.0_212”
OpenJDK Runtime Environment (build 1.8.0_212-b04)
OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode)
2、然后查找java命令的位置
which java
[root@iZ2ze3zda3caeyx6pn7c5zZ base-eureka]# which java /usr/bin/java
3、查找java命令的位置所对于的软链地址
ls -l /usr/bin/java
[root@iZ2ze3zda3caeyx6pn7c5zZ base-eureka]# ls -l /usr/bin/java lrwxrwxrwx 1 root root 22 Jun 18 15:45 /usr/bin/java -> /etc/alternatives/java
4.最后通过软链地址查找JDK的安装目录
ls -l /etc/alternatives/java
[root@iZ2ze3zda3caeyx6pn7c5zZ base-eureka]# ls -l /etc/alternatives/java lrwxrwxrwx 1 root root 73 Jun 18 15:45 /etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64/jre/bin/java