【Jetson Nano学习笔记】Ubuntu18.04 上安装Nodejs、Hexo、nginx、配置到github(ARM版本)

2023-05-16

Nodejs有很多版本,按照不同的操作系统、不同的处理器,下载安装对应版本。

一、去官网下载ARMv8版本的压缩包(Jetson Nano的处理器是ARM57,基于ARMv8的核)
英文网址:Download | Node.js

通过Linux系统命令【uname -a】 查看操作系统位数(备注:x86_64表示X86处理器64位系统, aarch64表示ARM处理器64位系统)

Linux ljx-desktop 4.9.253-tegra #1 SMP PREEMPT Mon Jul 26 12:13:06 PDT 2021 aarch64 aarch64 aarch64 GNU/Linux

二、下载下来的文件【node-v16.14.0-linux-arm64.tar】传到Nano上,解压,然后通过建立软连接变为全局命令。

1、传到Nano上可以是任意路径,本例路径为  /home/ljx/node-js
2、解压(解压后的文件我这边将名字改了,这个地方自己随意,只要在建立软连接的时候写正确就可以)


#解压
tar -xvJf  node-v16.14.0-linux-arm64.tar.xz
#移动到/usl/lcoal目录下
mv  node-v16.14.0-linux-arm64 /usr/local/node-v6
#创建软链接
ln -s /usr/local/node-v6/node-v16.14.0-linux-arm64/bin/node /bin/node
ln -s /usr/local/node-v6/node-v16.14.0-linux-arm64/bin/npm /bin/npm
#添加环境变量
echo 'export PATH=/usr/local/node-v6/bin:$PATH' >> /etc/profilesource /etc/profile  #让环境变量生效
如果哪天环境搞坏了重新解压删除软连接重新来一遍就好了
sudo rm /bin/node
sudo rm /bin/npm


   确认一下nodejs下bin目录是否有node 和npm文件,如果有执行软连接,如果没有重新下载执行上边步骤。
3、最后一步检验nodejs是否已变为全局(也可以说“安装”成功)
    在Linux命令行【node -v和 npm -v 】命令会显示nodejs版本,如显示版本则大功告成。

v16.14.0
8.3.1

二、安装并使用Hexo

Hexo的安装较为简单,使用如下命令安装

npm install -g hexo-cli
#这里有一点要注意的就是,npm的源是在国外的,访问可能会很慢,这里可以换成我们国内的源进行安装加快速度。操作如下:
npm config set registry https://registry.npm.taobao.org

初始化Hexo

上面的安装完成之后执行下面的命令进行对Hexo进行一个初始化


#这个文件名字可以自己指定,之后会在当前目录下生成对应文件夹
hexo init <文件名字>
cd 文件名字
npm install

可以看到安装好之后的一个目录结构:

 init 出现问题的话去出错的github里面下载下来就行了

需要安装pug以及stylus的渲染器(以后可能会用到)

npm install --save hexo-renderer-jade hexo-generator-feed hexo-generator-sitemap hexo-browsersync hexo-generator-archive

目录文件说明:

_config.yml:网站的配置信息,您可以在此配置大部分的参数。

package.json:应用程序的信息。EJS, Stylus 和 Markdown renderer 已默认安装,您可以自由移除。

scaffolds:模版文件夹。当您新建文章时Hexo 会根据 scaffold 来建立文件Hexo的模板是指在新建的文章文件中默认填充的内容。例如,如果您修改scaffold/post.md中的Front-matter内容,那么每次新建一篇文章时都会包含这个修改。

source:资源文件夹是存放用户资源的地方。除 _posts 文件夹之外,开头命名为 _ (下划线)的文件 / 文件夹和隐藏的文件将会被忽略。Markdown 和 HTML 文件会被解析并放到 public 文件夹,而其他文件会被拷贝过去。

themes:主题 文件夹。Hexo 会根据主题来生成静态页面。

查看hexo的版本以及对应的数据:

 hexo
FATAL SyntaxError: Unexpected token i in JSON at position 0
    at JSON.parse (<anonymous>)
    at /usr/local/lib/node_modules/hexo-cli/lib/find_pkg.js:18:23
    at tryCatcher (/usr/local/lib/node_modules/hexo-cli/node_modules/bluebird/js/release/util.js:16:23)
    at Promise._settlePromiseFromHandler (/usr/local/lib/node_modules/hexo-cli/node_modules/bluebird/js/release/promise.js:547:31)
    at Promise._settlePromise (/usr/local/lib/node_modules/hexo-cli/node_modules/bluebird/js/release/promise.js:604:18)
    at Promise._settlePromise0 (/usr/local/lib/node_modules/hexo-cli/node_modules/bluebird/js/release/promise.js:649:10)
    at Promise._settlePromises (/usr/local/lib/node_modules/hexo-cli/node_modules/bluebird/js/release/promise.js:729:18)
    at _drainQueueStep (/usr/local/lib/node_modules/hexo-cli/node_modules/bluebird/js/release/async.js:93:12)
    at _drainQueue (/usr/local/lib/node_modules/hexo-cli/node_modules/bluebird/js/release/async.js:86:9)
    at Async._drainQueues (/usr/local/lib/node_modules/hexo-cli/node_modules/bluebird/js/release/async.js:102:5)
    at Immediate.Async.drainQueues [as _onImmediate] (/usr/local/lib/node_modules/hexo-cli/node_modules/bluebird/js/release/async.js:15:14)
    at processImmediate (node:internal/timers:466:21)
ljx@ljx-desktop:~/node-js/hexo-starter-master$ npm install
npm ERR! code EJSONPARSE
npm ERR! path /home/ljx/node-js/hexo-starter-master/package.json
npm ERR! JSON.parse Unexpected token "i" (0x69) in JSON at position 0 while parsing near "i{\n  \"name\": \"hexo-s..."
npm ERR! JSON.parse Failed to parse JSON data.
npm ERR! JSON.parse Note: package.json must be actual JSON, not just JavaScript.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/ljx/.npm/_logs/2022-02-13T12_02_30_036Z-debug-0.log
ljx@ljx-desktop:~/node-js/hexo-starter-master$ sudo npm install
npm ERR! code EJSONPARSE
npm ERR! path /home/ljx/node-js/hexo-starter-master/package.json
npm ERR! JSON.parse Unexpected token "i" (0x69) in JSON at position 0 while parsing near "i{\n  \"name\": \"hexo-s..."
npm ERR! JSON.parse Failed to parse JSON data.
npm ERR! JSON.parse Note: package.json must be actual JSON, not just JavaScript.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/ljx/.npm/_logs/2022-02-13T12_02_47_466Z-debug-0.log
ljx@ljx-desktop:~/node-js/hexo-starter-master$ ls
blog                   _config.yml  nginx         package.json       public     source
_config.landscape.yml  db.json      node_modules  package-lock.json  scaffolds  themes
ljx@ljx-desktop:~/node-js/hexo-starter-master$ vi package.json
ljx@ljx-desktop:~/node-js/hexo-starter-master$ npm install

突然出错了,把我这个新手整懵逼了,想着重新npm install发现了错误

hexo -v可以了

ljx@ljx-desktop:~/node-js/hexo-starter-master$ hexo -v
INFO  Validating config
hexo: 6.0.0
hexo-cli: 4.3.0
os: linux 4.9.253-tegra Ubuntu 18.04.6 LTS (Bionic Beaver)
node: 16.14.0
v8: 9.4.146.24-node.20
uv: 1.43.0
zlib: 1.2.11
brotli: 1.0.9
ares: 1.18.1
modules: 93
nghttp2: 1.45.1
napi: 8
llhttp: 6.0.4
openssl: 1.1.1m+quic
cldr: 40.0
icu: 70.1
tz: 2021a3
unicode: 14.0
ngtcp2: 0.1.0-DEV
nghttp3: 0.1.0-DEV

还想试下别的错误,还真出来了

ljx@ljx-desktop:~/node-js/hexo-starter-master$ hexo -v
FATAL YAMLException: end of the stream or a document separator is expected (7:9)

 4 |
 5 | # Site
 6 | title:俊俊的笔记
 7 | subtitle: 记录学习
-------------^
 8 | description: ’希望大佬能够出现在我这里给指点一二‘
 9 | keywords: Nvidia Jetson Tx2 AGX-Xavier N ...
    at generateError (/home/ljx/node-js/hexo-starter-master/node_modules/js-yaml/lib/loader.js:183:10)
    at throwError (/home/ljx/node-js/hexo-starter-master/node_modules/js-yaml/lib/loader.js:187:9)
    at readDocument (/home/ljx/node-js/hexo-starter-master/node_modules/js-yaml/lib/loader.js:1645:5)
    at loadDocuments (/home/ljx/node-js/hexo-starter-master/node_modules/js-yaml/lib/loader.js:1688:5)
    at Object.load (/home/ljx/node-js/hexo-starter-master/node_modules/js-yaml/lib/loader.js:1714:19)
    at Hexo.yamlHelper (/home/ljx/node-js/hexo-starter-master/node_modules/hexo/lib/plugins/renderer/yaml.js:7:15)
    at Hexo.tryCatcher (/home/ljx/node-js/hexo-starter-master/node_modules/bluebird/js/release/util.js:16:23)
    at Hexo.<anonymous> (/home/ljx/node-js/hexo-starter-master/node_modules/bluebird/js/release/method.js:15:34)
    at /home/ljx/node-js/hexo-starter-master/node_modules/hexo/lib/hexo/render.js:81:22
    at tryCatcher (/home/ljx/node-js/hexo-starter-master/node_modules/bluebird/js/release/util.js:16:23)
    at Promise._settlePromiseFromHandler (/home/ljx/node-js/hexo-starter-master/node_modules/bluebird/js/release/promise.js:547:31)
    at Promise._settlePromise (/home/ljx/node-js/hexo-starter-master/node_modules/bluebird/js/release/promise.js:604:18)
    at Promise._settlePromise0 (/home/ljx/node-js/hexo-starter-master/node_modules/bluebird/js/release/promise.js:649:10)
    at Promise._settlePromises (/home/ljx/node-js/hexo-starter-master/node_modules/bluebird/js/release/promise.js:729:18)
    at _drainQueueStep (/home/ljx/node-js/hexo-starter-master/node_modules/bluebird/js/release/async.js:93:12)
    at _drainQueue (/home/ljx/node-js/hexo-starter-master/node_modules/bluebird/js/release/async.js:86:9)
    at Async._drainQueues (/home/ljx/node-js/hexo-starter-master/node_modules/bluebird/js/release/async.js:102:5)
    at Immediate.Async.drainQueues [as _onImmediate] (/home/ljx/node-js/hexo-starter-master/node_modules/bluebird/js/release/async.js:15:14)
    at processImmediate (node:internal/timers:466:21) {
  reason: 'end of the stream or a document separator is expected',
  mark: {
    name: null,
    buffer: '# Hexo Configuration\n' +
      '## Docs: https://hexo.io/docs/configuration.html\n' +
      '## Source: https://github.com/hexojs/hexo/\n' +
      '\n' +
      '# Site\n' +
      'title:俊俊的笔记\n' +
      'subtitle: 记录学习\n' +
      'description: ’希望大佬能够出现在我这里给指点一二‘\n' +
      'keywords: Nvidia Jetson Tx2 AGX-Xavier NX Nano Nano2gb\n' +
      'author: ljx\n' +
      'language: en\n' +
      "timezone: ''\n" +
      '\n' +
      '# URL\n' +
      "## Set your site url here. For example, if you use GitHub Page, set url as 'https://username.github.io/project'\n" +
      'url: http://example.com\n' +
      'permalink: :year/:month/:day/:title/\n' +
      'permalink_defaults:\n' +
      'pretty_urls:\n' +
      "  trailing_index: true # Set to false to remove trailing 'index.html' from permalinks\n" +
      "  trailing_html: true # Set to false to remove trailing '.html' from permalinks\n" +
      '\n' +
      '# Directory\n' +
      'source_dir: source\n' +
      'public_dir: public\n' +
      'tag_dir: tags\n' +
      'archive_dir: archives\n' +
      'category_dir: categories\n' +
      'code_dir: downloads/code\n' +
      'i18n_dir: :lang\n' +
      'skip_render:\n' +
      '\n' +
      '# Writing\n' +
      'new_post_name: :title.md # File name of new posts\n' +
      'default_layout: post\n' +
      'titlecase: false # Transform title into titlecase\n' +
      'external_link:\n' +
      '  enable: true # Open external links in new tab\n' +
      '  field: site # Apply to the whole site\n' +
      "  exclude: ''\n" +
      'filename_case: 0\n' +
      'render_drafts: false\n' +
      'post_asset_folder: false\n' +
      'relative_link: false\n' +
      'future: true\n' +
      'highlight:\n' +
      '  enable: true\n' +
      '  line_number: true\n' +
      '  auto_detect: false\n' +
      "  tab_replace: ''\n" +
      '  wrap: true\n' +
      '  hljs: false\n' +
      'prismjs:\n' +
      '  enable: false\n' +
      '  preprocess: true\n' +
      '  line_number: true\n' +
      "  tab_replace: ''\n" +
      '\n' +
      '# Home page setting\n' +
      "# path: Root path for your blogs index page. (default = '')\n" +
      '# per_page: Posts displayed per page. (0 = disable pagination)\n' +
      '# order_by: Posts order. (Order by date descending by default)\n' +
      'index_generator:\n' +
      "  path: ''\n" +
      '  per_page: 10\n' +
      '  order_by: -date\n' +
      '\n' +
      '# Category & Tag\n' +
      'default_category: uncategorized\n' +
      'category_map:\n' +
      'tag_map:\n' +
      '\n' +
      '# Metadata elements\n' +
      '## https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta\n' +
      'meta_generator: true\n' +
      '\n' +
      '# Date / Time format\n' +
      '## Hexo uses Moment.js to parse and display date\n' +
      '## You can customize the date format as defined in\n' +
      '## http://momentjs.com/docs/#/displaying/format/\n' +
      'date_format: YYYY-MM-DD\n' +
      'time_format: HH:mm:ss\n' +
      "## updated_option supports 'mtime', 'date', 'empty'\n" +
      "updated_option: 'mtime'\n" +
      '\n' +
      '# Pagination\n' +
      '## Set per_page to 0 to disable pagination\n' +
      'per_page: 18\n' +
      'pagination_dir: page\n' +
      '\n' +
      '# Include / Exclude file(s)\n' +
      "## include:/exclude: options only apply to the 'source/' folder\n" +
      'include:\n' +
      'exclude:\n' +
      'ignore:\n' +
      '\n' +
      '# Extensions\n' +
      '## Plugins: https://hexo.io/plugins/\n' +
      '## Themes: https://hexo.io/themes/\n' +
      '#theme: landscape\n' +
      '\n' +
      'theme: hexo-theme-matery\n' +
      '# Deployment\n' +
      '## Docs: https://hexo.io/docs/one-command-deployment\n' +
      'deploy:\n' +
      "  type: ''\n",
    position: 141,
    line: 6,
    column: 8,
    snippet: ' 4 | \n' +
      ' 5 | # Site\n' +
      ' 6 | title:俊俊的笔记\n' +
      ' 7 | subtitle: 记录学习\n' +
      '-------------^\n' +
      ' 8 | description: ’希望大佬能够出现在我这里给指点一二‘\n' +
      ' 9 | keywords: Nvidia Jetson Tx2 AGX-Xavier N ...'
  }
}

这里的错误就是_config.yml文件内容有问题

生成静态文件,并开启Hexo服务:

进入到了hexo的安装目录之后,使用hexo generate来生成静态文件,也可以使用hexo g,之后使用hexo server(可以写成hexo s)命令启动服务,操作如下:

ljx@ljx-desktop:~/node-js/hexo-starter-master$ hexo g
INFO  Validating config
INFO  Start processing
INFO  Files loaded in 1.09 s
INFO  Generated: archives/index.html
INFO  Generated: archives/2022/index.html
INFO  Generated: archives/2022/02/index.html
INFO  Generated: index.html
INFO  Generated: medias/avatar.jpg
INFO  Generated: medias/barrager/0.png
INFO  Generated: medias/featureimages/10.jpg
INFO  Generated: medias/reward/alipay.jpg
INFO  Generated: 2022/02/12/hello-world/index.html
INFO  Generated: favicon.png
INFO  Generated: medias/comment_bg.png
INFO  Generated: medias/icp.png
INFO  Generated: medias/logo.png
INFO  Generated: medias/barrager/1.png
INFO  Generated: medias/barrager/2.png
INFO  Generated: medias/barrager/close.png
INFO  Generated: medias/featureimages/13.jpg
INFO  Generated: medias/featureimages/16.jpg
INFO  Generated: medias/featureimages/15.jpg
INFO  Generated: medias/featureimages/2.jpg
INFO  Generated: medias/featureimages/21.jpg
INFO  Generated: medias/featureimages/22.jpg
INFO  Generated: medias/featureimages/23.jpg
INFO  Generated: medias/featureimages/3.jpg
INFO  Generated: medias/featureimages/5.jpg
INFO  Generated: medias/featureimages/8.jpg
INFO  Generated: medias/featureimages/7.jpg
INFO  Generated: medias/reward/wechat.png
INFO  Generated: medias/banner/0.jpg
INFO  Generated: libs/awesome/webfonts/fa-brands-400.woff2
INFO  Generated: libs/twikoo/twikoo.all.min.js.LICENSE.txt
INFO  Generated: libs/lightGallery/img/loading.gif
INFO  Generated: libs/share/fonts/iconfont.eot
INFO  Generated: medias/banner/2.jpg
INFO  Generated: medias/featureimages/0.jpg
INFO  Generated: medias/banner/3.jpg
INFO  Generated: medias/featureimages/11.jpg
INFO  Generated: medias/featureimages/1.jpg
INFO  Generated: medias/featureimages/12.jpg
INFO  Generated: medias/featureimages/14.jpg
INFO  Generated: medias/featureimages/17.jpg
INFO  Generated: medias/featureimages/18.jpg
INFO  Generated: medias/featureimages/19.jpg
INFO  Generated: medias/featureimages/20.jpg
INFO  Generated: medias/featureimages/4.jpg
INFO  Generated: medias/featureimages/9.jpg
INFO  Generated: medias/featureimages/6.jpg
INFO  Generated: libs/awesome/webfonts/fa-brands-400.woff
INFO  Generated: libs/awesome/webfonts/fa-solid-900.woff
INFO  Generated: libs/aos/aos.js
INFO  Generated: libs/awesome/webfonts/fa-solid-900.woff2
INFO  Generated: libs/aplayer/APlayer.min.css
INFO  Generated: libs/background/ribbon-dynamic.js
INFO  Generated: libs/codeBlock/codeBlockFuction.js
INFO  Generated: libs/instantpage/instantpage.js
INFO  Generated: libs/jqcloud/jqcloud-1.0.4.min.js
INFO  Generated: libs/justifiedGallery/justifiedGallery.min.css
INFO  Generated: libs/minivaline/MiniValine.js
INFO  Generated: libs/mermaid/mermaid.min.css
INFO  Generated: libs/others/TencentCaptcha.js
INFO  Generated: libs/prism/prism.css
INFO  Generated: libs/scrollprogress/scrollProgress.min.js
INFO  Generated: libs/tocbot/tocbot.css
INFO  Generated: libs/fancybox/jquery.fancybox.css
INFO  Generated: libs/share/css/share.min.css
INFO  Generated: libs/animate/animate.min.css
INFO  Generated: libs/cryptojs/crypto-js.min.js
INFO  Generated: libs/dplayer/DPlayer.min.css
INFO  Generated: libs/gitment/gitment-default.css
INFO  Generated: libs/gitalk/gitalk.css
INFO  Generated: libs/masonry/masonry.pkgd.min.js
INFO  Generated: libs/jquery/jquery-3.6.0.min.js
INFO  Generated: libs/materialize/materialize.min.css
INFO  Generated: libs/valine/Valine.min.js
INFO  Generated: libs/lightGallery/css/lightgallery.min.css
INFO  Generated: libs/awesome/css/all.css
INFO  Generated: libs/share/js/jquery.share.min.js
INFO  Generated: libs/lightGallery/js/lightgallery-all.min.js
INFO  Generated: medias/images/02.jpg
INFO  Generated: libs/awesome/webfonts/fa-regular-400.ttf
INFO  Generated: libs/lightGallery/fonts/lg.svg
INFO  Generated: css/barrager.css
INFO  Generated: css/bb.css
INFO  Generated: css/my-gitalk.css
INFO  Generated: css/my.css
INFO  Generated: js/gallery-encrypt.js
INFO  Generated: css/gallery.css
INFO  Generated: css/gitment.css
INFO  Generated: libs/aplayer/Meting.min.js
INFO  Generated: libs/background/canvas-nest.js
INFO  Generated: libs/background/ribbon-refresh.min.js
INFO  Generated: libs/codeBlock/codeCopy.js
INFO  Generated: libs/background/ribbon.min.js
INFO  Generated: libs/codeBlock/codeLang.js
INFO  Generated: libs/codeBlock/codeShrink.js
INFO  Generated: libs/jqcloud/jqcloud.css
INFO  Generated: libs/others/busuanzi.pure.mini.js
INFO  Generated: libs/others/clicklove.js
INFO  Generated: libs/others/snow.js
INFO  Generated: libs/others/star.js
INFO  Generated: libs/tocbot/tocbot.min.js
INFO  Generated: css/matery.css
INFO  Generated: js/jquery.barrager.js
INFO  Generated: js/search.js
INFO  Generated: libs/aos/aos.css
INFO  Generated: js/matery.js
INFO  Generated: libs/aplayer/APlayer.min.js
INFO  Generated: libs/gitment/gitment.js
INFO  Generated: libs/justifiedGallery/justifiedGallery.min.js
INFO  Generated: libs/others/sakura-half.js
INFO  Generated: libs/materialize/materialize.min.js
INFO  Generated: libs/others/sakura-reduce.js
INFO  Generated: libs/others/sakura-small.js
INFO  Generated: libs/others/sakura.js
INFO  Generated: libs/valine/av-min.js
INFO  Generated: libs/fancybox/fancybox.js
INFO  Generated: libs/awesome/css/all.min.css
INFO  Generated: libs/share/js/social-share.min.js
INFO  Generated: medias/cover.jpg
INFO  Generated: libs/twikoo/twikoo.all.min.js
INFO  Generated: medias/banner/1.jpg
INFO  Generated: medias/banner/5.jpg
INFO  Generated: medias/banner/6.jpg
INFO  Generated: libs/awesome/webfonts/fa-brands-400.eot
INFO  Generated: libs/awesome/webfonts/fa-brands-400.ttf
INFO  Generated: libs/awesome/webfonts/fa-regular-400.svg
INFO  Generated: js/crypto-js.js
INFO  Generated: libs/dplayer/DPlayer.min.js
INFO  Generated: libs/awesome/webfonts/fa-regular-400.woff
INFO  Generated: libs/lightGallery/img/video-play.png
INFO  Generated: libs/echarts/echarts.min.js
INFO  Generated: libs/lightGallery/img/youtube-play.png
INFO  Generated: libs/awesome/webfonts/fa-regular-400.woff2
INFO  Generated: libs/lightGallery/img/vimeo-play.png
INFO  Generated: libs/lightGallery/fonts/lg.ttf
INFO  Generated: libs/lightGallery/fonts/lg.woff
INFO  Generated: libs/share/fonts/iconfont.svg
INFO  Generated: libs/share/fonts/iconfont.woff
INFO  Generated: libs/share/fonts/iconfont.ttf
INFO  Generated: libs/awesome/webfonts/fa-solid-900.eot
INFO  Generated: libs/awesome/webfonts/fa-regular-400.eot
INFO  Generated: libs/awesome/webfonts/fa-solid-900.ttf
INFO  Generated: libs/gitalk/gitalk.min.js
INFO  Generated: medias/banner/4.jpg
INFO  Generated: medias/images/03.jpg
INFO  Generated: libs/mermaid/mermaid.min.js
INFO  Generated: medias/images/01.jpg
INFO  Generated: libs/awesome/webfonts/fa-brands-400.svg
INFO  Generated: libs/awesome/webfonts/fa-solid-900.svg
INFO  Generated: libs/mermaid/mermaid.js
INFO  150 files generated in 690 ms

hexo -s出现问题,肯定是我之前的配置冲突了如下:

INFO  Validating config
FATAL Port 4000 has been used. Try other port instead.
FATAL {
  err: Error: listen EADDRINUSE: address already in use :::4000
      at Server.setupListenHandle [as _listen2] (node:net:1330:16)
      at listenInCluster (node:net:1378:12)
      at Server.listen (node:net:1465:7)
      at /home/ljx/node-js/hexo-starter-master/node_modules/hexo-server/lib/server.js:68:12
      at Promise._execute (/home/ljx/node-js/hexo-starter-master/node_modules/bluebird/js/release/debuggability.js:384:9)
      at Promise._resolveFromExecutor (/home/ljx/node-js/hexo-starter-master/node_modules/bluebird/js/release/promise.js:518:18)
      at new Promise (/home/ljx/node-js/hexo-starter-master/node_modules/bluebird/js/release/promise.js:103:10)
      at checkPort (/home/ljx/node-js/hexo-starter-master/node_modules/hexo-server/lib/server.js:65:10)
      at Hexo.module.exports (/home/ljx/node-js/hexo-starter-master/node_modules/hexo-server/lib/server.js:17:10)
      at Hexo.tryCatcher (/home/ljx/node-js/hexo-starter-master/node_modules/bluebird/js/release/util.js:16:23)
      at Hexo.<anonymous> (/home/ljx/node-js/hexo-starter-master/node_modules/bluebird/js/release/method.js:15:34)
      at Hexo.call (/home/ljx/node-js/hexo-starter-master/node_modules/hexo/lib/hexo/index.js:258:27)
      at /usr/local/lib/node_modules/hexo-cli/lib/hexo.js:60:17
      at tryCatcher (/usr/local/lib/node_modules/hexo-cli/node_modules/bluebird/js/release/util.js:16:23)
      at Promise._settlePromiseFromHandler (/usr/local/lib/node_modules/hexo-cli/node_modules/bluebird/js/release/promise.js:547:31)
      at Promise._settlePromise (/usr/local/lib/node_modules/hexo-cli/node_modules/bluebird/js/release/promise.js:604:18)
      at Promise._settlePromise0 (/usr/local/lib/node_modules/hexo-cli/node_modules/bluebird/js/release/promise.js:649:10)
      at Promise._settlePromises (/usr/local/lib/node_modules/hexo-cli/node_modules/bluebird/js/release/promise.js:729:18)
      at _drainQueueStep (/usr/local/lib/node_modules/hexo-cli/node_modules/bluebird/js/release/async.js:93:12)
      at _drainQueue (/usr/local/lib/node_modules/hexo-cli/node_modules/bluebird/js/release/async.js:86:9)
      at Async._drainQueues (/usr/local/lib/node_modules/hexo-cli/node_modules/bluebird/js/release/async.js:102:5)
      at Immediate.Async.drainQueues (/usr/local/lib/node_modules/hexo-cli/node_modules/bluebird/js/release/async.js:15:14) {
    code: 'EADDRINUSE',
    errno: -98,
    syscall: 'listen',
    address: '::',
    port: 4000
  }
} Something's wrong. Maybe you can find the solution here: %s https://hexo.io/docs/troubleshooting.html
ljx@ljx-desktop:~/node-js/hexo-starter-master$ sudo vi _config.yml
ljx@ljx-desktop:~/node-js/hexo-starter-master$ ls
blog                   _config.yml  nginx         package.json       public     source
_config.landscape.yml  db.json      node_modules  package-lock.json  scaffolds  themes
ljx@ljx-desktop:~/node-js/hexo-starter-master$ vi package.json
ljx@ljx-desktop:~/node-js/hexo-starter-master$ hexo s -p 4001
INFO  Validating config
INFO  Start processing
INFO  Hexo is running at http://localhost:4001/ . Press Ctrl+C to stop.

4000估计也开启了,现在可以看到4001端口的服务已经开启,之后在你的浏览器输入http://<你的linux机器的ip地址或者服务器公网地址>:4001,如下可以看到最开始的一个界面:

初步使用Hexo:

使用前,我们对我们的站点进行一个配置,也就是我们创建的hexo目录的_config.yml文件,可以修改的部分介绍如下:

Sitetitle: QIMING.INFO #博客网站的标题

subtitle:          #博客网站的副标题

description:       #你的网站描述

keywords:          #网站的关键词  

author:            #作者的名字

language:          #博客网站使用的语言

timezone:          #网站时区

4开始使用Hexo发布自己的第一篇博客!


执行下面的目录创建一篇新文章:

hexo new post <文章标题>

 这里我创建了一篇博客,创建之后hexo目录下面的source/post文件夹下会产生一个搭建环境第一天文件

编辑文章

进入到上面说的那个目录下可以看到我们创建的博客文件:

直接使用vim或者vi就可以对我们的博客文章进行编辑了,打开此后可以看到---分隔的区域,这部分主要对文章进行标注变量,如下:

发布文章

输入如下命令,生成静态网页,静态网页会存放在public文件下

hexo g

hexo s

之后就可以去浏览器访问了!可以看到我们发布的文章已经成功在浏览器显示,到这里个人博客网站就已经成功搭建了。

主题的选择


主题网站:https://hexo.io/themes/ hexo提供了大量精美的主题供我们选择,选择喜欢的主题,在hexo目录下的themes文件夹下使用git clone下载主题,之后再配置文件_config.yml把theme后面修改成下载的主题的名字,之后运行hexo clean ,hexo g即可看到生效的主题。

将Hexo部署上线到服务器:


如果是有服务器的小伙伴,也可以将Hexo部署到服务器供全网访问,服务器的购买这里就不多说,阿里云跟腾讯云上面对于学生也有较为优惠的价格。部署到服务器的话,就需要将上面的全部操作,在你的服务器系统上面执行,之后我们使用Nginx(反向代理服务器)进行部署。

Nginx安装:(这个方法我没有用,安装2)


Nginx是一款高性能的 HTTP 和反向代理服务器,这里我们采用编译安装的方式,按照下面的指引依次执行命令


#安装gcc编译环境:
yum install -y gcc-c++
#安装zlib-devel库:yum install -y zlib-devel
#安装OpenSSL密码库:yum install -y openssl openssl-devel
#安装pcre正则表达式库:编译nginx,需要需要指定pcre的路径,这里我们选择安装稳定版本的。
#下载地址:https://ftp.pcre.org/pub/pcre/#选择对应的版本下载下来之后上传到我们的服务器,也可以使用wget直接下载
tar -xf pcre-8.43.tar.gzcd pcre-8.43
mkdir -p /usr/local/pcre./configure --prefix=/usr/local/pcre
make && make install

 下载编译安装nginx:


nginx下载官网:http://nginx.org/en/download.html
wget http://nginx.org/download/nginx-1.16.0.tar.gz
mkdir -p /usr/local/nginx
tar -xf nginx-1.16.0.tar.gz
#编译指定安装路径需要进入nginxcd nginx-1.16.0
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-pcre
#http_ssl_module  这是支持https的一个模块,就是可以使用https://这样去访问。
make && make install  #编译安装

启动nginx服务:

#启动:
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 
#用指定配置文件的方式启动  -c
#测试:
/usr/local/nginx/sbin/nginx -t      
#这个用于测试nginx的语法是否有问题 显示is successful即为成功。
#关闭:/usr/local/nginx/sbin/nginx -s stop
#继续输入以下命令使Nginx开机自动启动:systemctl enable nginx
#配置文件的位置:/usr/local/nginx/conf
之后我们需要配置阿里云公网ip,编辑配置文件。

之后再重启nginx服务,开启hexo服务,这个时候使用公网的ip就可以访问到我们的hexo博客了!

安装2:

  • 下载nginx安装包:nginx: download
  • 下载 nginx-rtmp-module :https://github.com/arut/nginx-rtmp-module/archive/master.zip

 

  • 解压
  • #两个包最好放一个空文件夹中
    tar -zxvf nginx-1.18.0.tar.gz   #解压命令
    unzip nginx-rtmp-module-master  #解压命令
    

  • 安装依赖
  • sudo apt install -y gcc pcre pcre-devel openssl openssl-devel gd gd-devel
    ## 再执行安装
    make && make install
    

    或者

  • ## 进入nginx目录
    cd nginx-1.18.0
    **********************安装依赖 gcc g++******************************** 
    sudo apt install gcc g++
    **********************安装依赖 pcre******************************** 
    wget https://netix.dl.sourceforge.net/project/pcre/pcre/8.40/pcre-8.40.tar.gz
    tar -zxvf pcre-8.40.tar.gz
    cd pcre-8.40
    #编译安装  
    ./configure
    make && make install
    #查看pcre版本
    pcre-config --version
    **********************安装依赖 zlib******************************** 
    wget http://zlib.net/zlib-1.2.11.tar.gz
    tar -zxvf zlib-1.2.11.tar.gz
    cd zlib-1.2.11
    ./configure
    make
    make install
    **********************安装依赖 openssl******************************** 
    wget http://www.openssl.org/source/openssl-1.0.1c.tar.gz
    tar -zxvf openssl-1.0.1c.tar.gz
    

  • install nginx
  • # 将nginx-rtmp 模本编译到 nginx 下,注意是通过相对路径找到自己对应的nginx-rtmp-module-master 安装位置
    1) ./configure --sbin-path=/usr/local/nginx/nginx   --conf-path=/usr/local/nginx/nginx.conf   --pid-path=/usr/local/nginx/nginx.pid  --with-http_ssl_module   --with-pcre=/home/ljx/node-js/nginx/nginx-1.18.0/pcre-8.40  --with-zlib=/home/ljx/node-js/nginx/nginx-1.18.0/zlib-1.2.11    --add-module=/home/ljx/node-js/nginx/nginx-rtmp-module-master
    
    2)make
    3)make install
    

  • 配置nginx
  • cd /usr/local/nginx
    sudo gedit nginx.conf
    ### 修改内容如下 注意是在http{}外进行添加:
    
    rtmp{
        server{
    		listen 1935 ;
            application live{
    			live on;
    			record off;
            }
            application hls{
    			live on;
    			hls on;
    			hls_path nginx-rtmp-module/hls;
    			hls_cleanup off;
            }
        }
    }
    
    

  • 配置环境
  • sudo gedit  /etc/profile
    """加入下面的话在最后"""
    export PATH="$PATH:/usr/local/nginx"
    """"""""""""""""""""""""
    source /etc/profile
    

  • 启动与停止
  • #启动nginx服务器 启动服务器后在浏览器输入你服务器的ip(127.0.0.1):端口如果可以访问则说明配置成功了。
    sudo -s
    source /etc/profile
    nginx -V
    # begin
    /usr/local/nginx/nginx
    ps  -ef | grep nginx
    netstat -ano|grep 1935
    #停止
    /usr/local/nginx/nginx -s  stop
    #关闭防火墙,不然你浏览器访问不了
    systemctl stop firewalld
    #检查是否成功:浏览器输入服务器IP,就可以检测是否成功
    

    nginx自启动

  • sudo gedit /etc/rc.local
    """
    sudo source /etc/profile
    sudo /usr/local/nginx/nginx
    """
    sudo reboot 
    ps  -ef | grep nginx
    

    发布到github,小编现在没钱买域名这些,所以用这个也满足了

  • 配置github基本你的先下载

  • sudo apt install git

  • git --version //验证是否安装成功

  • git config --global user.name "用户名你的设备当前使用的用户名"

  •  git config --global user.email 你的github邮箱

  • git config --list

  • 为GitHub账号添加SSH Keys

    1.生成Keys

    linuxidc@linuxidc:~$ ssh-keygen -t rsa -C "你的github邮箱"

  • 输出如下示例:
    
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/linuxidc/.ssh/id_rsa):
    /home/linuxidc/.ssh/id_rsa already exists.
    Overwrite (y/n)? y
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /home/linuxidc/.ssh/id_rsa.
    Your public key has been saved in /home/linuxidc/.ssh/id_rsa.pub.
    The key fingerprint is:
    SHA256:SJzejSuID3eygvca1i7Ci+TqTIbxWcXULnw949ZXyMM root@linuxidc.net
    The key's randomart image is:
    +---[RSA 2048]----+
    |      ..        |
    |    + ..        |
    |    .*. .  . o |
    |    +oooo+  E .|
    |.  . ooS..+  o |
    |.o.= .  .o . .  |
    |o**.o . ..  .  |
    |@o+= . .        |
    |BO*+o            |
    +----[SHA256]-----+

  • 回到主目录下 ls -a

  • 新生成的.ssh

  • cat ~/.ssh/id_rsa.pub
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDRTOMUbHoY8yr6fyYE43pL3bD7VUz9FvlGzi3ACX4jYeUcaPM+Ni5XBtM1ZPD1l1EN0fCNrSpR1Y1sw4dJzbeE9JFM/iLTugFyUaxaLcNPpqXkR4uxipheeM5aIg+523Lm2oR7HeImORjHPr2SN5ZR/YbLecMxhDbx3rAbeYYNtxBE9c9kRF0m0gyLneCo8HxIZz+9wXK2G/B5eZEpnG/8zWkGkCwRB16J6JeWF+9kjwohxXTtZHDjXSt8VysW0EFRkxjxSk5JOTPgPtJOPDKfmXWsw47OeY3gRJHCb4BCMxBvlU341Ncp/rYP/S9bWuUDWHCt8rkGoRXF/6LKw9FD root@linuxidc.net

    复制密钥到github

  • 登录github-> Settings-> SSH and GPG Keys-> New SSH key添加

  • 测试是否连接成功

    linuxidc@linuxidc:~$ ssh -T git@github.com

    Hi Unlicensed-driver-ljx! You've successfully authenticated, but GitHub does not provide shell access

    成功!

  • 本地创建一个仓库,我直接用这个node-js下hexo的目录了

  • git init 

  • ls  -a 

  • 新建Github仓库 

  • 到GitHub上去建一个repository. 注意名字只能是" github账户名.github.io ".
  • 然后进入这个repo,点击最右侧的setting。
    在这个界面一直往下拉,可以看到

目录下找到_config.yml使用vscode或者sublime等编辑器打开.按照如下配置Deployment:

记得 先安装deploy-git ,也就是部署的命令,这样你才能用命令部署到GitHub。
deploy时要你输入username和password。

sudo npm install hexo-deployer-git --save
sudo hexo clean
sudo hexo generate
sudo hexo deploy

好了愉快登录,Hexo

后面完善细节,主题这些,小白我是所以写的不好的大家指出来

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Jetson Nano学习笔记】Ubuntu18.04 上安装Nodejs、Hexo、nginx、配置到github(ARM版本) 的相关文章

  • 计算机网络课后答案(谢希仁第八版)

    计算机网络课后答案 谢希仁第八版
  • linux系统 删除文件命令

    Linux系统下删除文件是一个非常高频的需求 xff0c 几乎每天都会遇到 xff0c 所以rm命令是一个非常常用Linux命令 rm命令是英文单词 remove 的缩写 xff0c 它主要作用是 xff1a 1 删除文件 xff1b 2
  • 常见的HTTP状态码列表

    HTTP状态码列表 状态码 状态码英文名称 中文描述 1xx xff08 信息性状态码 xff09 xff1a 请求已被接受 xff0c 需要继续处理 100 Continue 继续 客户端应继续其请求 101 Switching Prot
  • 二进制的加减法_二进制加减法

    二进制的加减法 1 二进制加法 1 Binary Addition Since binary numbers consist of only two digits 0 and 1 so their addition is different
  • SQL注入攻击方法

    SQL注入攻击是一种利用Web应用程序中存在的安全漏洞 xff0c 通过在输入框中插入恶意的SQL代码 xff0c 从而实现对数据库的非法操作 以下是一些常见的SQL注入攻击方法 xff1a 使用单引号 xff08 39 xff09 进行字
  • 利用Python+selenium技术,实现浏览器基本操作详解,代码有详细注释

    首先 xff0c 需要安装selenium库和对应的浏览器驱动程序 以Chrome浏览器为例 xff0c 可以使用以下命令安装selenium和chromedriver xff1a pip install selenium 然后 xff0c
  • &和&&的区别(简单易懂)

    amp xff08 按位与 xff09 和 amp amp xff08 逻辑与 xff09 的区别如下 xff1a 1 amp amp 具有短路功能 xff0c 而 amp 不具有短路功能 2 当 amp 运算符两侧的表达式的结果均为真时
  • Spring框架学习笔记

    一 什么是Spring框架 Spring框架是由于软件开发的复杂性而创建的 Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情 然而 xff0c Spring的用途不仅仅限于服务器端的开发 从简单性 可测试性和松耦
  • 人工智能——DBSCAN密度聚类(Python)

    目录 1 概述 1 1 概念 1 2 DBSCAN数据点分类 2 DBSCAN算法流程 2 1 DBSCAN算法流程 xff1a 2 2 举例 3 案例1 xff08 Python实现 xff09 3 1 案例 3 2 Python实现 3
  • @RequestMapping的参数和用法

    在Spring MVC 中使用 64 RequestMapping 来映射请求 xff0c 也就是通过它来指定控制器可以处理哪些URL请求 xff0c 相当于Servlet中在web xml中配置 源码 xff1a 该注解说明可以在类和方法
  • Linux 实验:记录型信号量 生产者-消费者问题详解

    进程同步问题是一个非常重要且相当有趣的问题 xff0c 因而吸引了很多学者对他进行研究 本文就选取其中较为代表性的生产者 消费者问题来进行学习 xff0c 以帮助我们更好的理解进程同步的概念及实现方法 一 问题描述 有一群生产者进程在生产产
  • Linux C语言线程解决生产者与消费者

    前言 生产者 消费者模式 xff0c 生产者这边负责生产产品 而消费者负责消费产品 xff0c 对于消费者来说 xff0c 没有产品的时候只能等待产品出来 xff0c 有产品就使用它 这里我们使用一个变量来表示这个这个产品 xff0c 生产
  • Mariadb

    文章目录 1 数据库的介绍2 mariadb的安装与开启3 软件基本信息4 数据库的安全初始化4 1 执行安全初始化脚本4 2 关闭数据库开放端口 5 数据库的基本管理5 1查看5 2新建5 3更改5 4备份与删除 6 数据库密码管理6 1
  • 【FPGA】按键消抖

    文章目录 一 按键消抖概述1 为何要进行按键消抖2 消抖的方式 二 系统设计1 系统模块划分2 系统时序图 三 代码实现1 按键消抖模块 xff08 key debounce xff09 2 呼吸灯模块 xff08 led breath x
  • java字符串添加字符_如何在Java中向字符串添加字符?

    java字符串添加字符 Case 1 In a simple way we will learn how to add characters by using predefined methods 情况1 xff1a 以简单的方式 xff0
  • 【Ubuntu18.04更换国内源及404错误解决办法】

    Ubuntu18 04 arm换源方法 及 404错误解决办法 换源将下面的任选一组源放入到上面的sources list中 xff0c 96 保存退出并更新即可 96 清华源阿里源中科大源 错误apt get update 后出现 404
  • 【Linux中QT加载.so库与调用Python】

    Linux中QT添加 so库与Python库 一 如何导入 so库1 1 不同系统中 库名称各有不同1 2 Linux中的QT导入库方法 xff1a 二 调用Python2 1 添加Python库2 2 创建Python文件 引入头文件2
  • QT连接SQLServer并添加ODBC数据源

    QT连接SQLServer并添加ODBC数据源 一 创建数据源1 打开ODBC数据源2 创建数据源3 测试数据源 二 QT连接SQLServer1 连接代码2 测试成功样图 一 创建数据源 1 打开ODBC数据源 在搜索框中进行搜索ODBC
  • QT生成exe独立运行文件

    目录 一 封装QT独立运行的 exe文件好处1 1 xff1a 封装软件 xff1a Enigma Virtual Box 9 901 2 xff1a 下载链接 xff1a 阿里云盘 https www aliyundrive com s
  • 【1期 QT之控件的创建与使用】

    前言 QT一开始在1991年被奇趣公司研发 xff0c 创建的目的就是实现GUI图形界面开发与非GUI的开发 后来被诺基亚收购了 xff0c 维护至今 当然在诺基亚手里也是越发展越好 好了QT就介绍这么多了 我们直接上干货 xff1a 我将

随机推荐

  • 【2期 QT信号与槽函数&回调函数与函数指针】

    前言 信号与槽函 xff1a 一对多 多对一 多对多 类似于C 43 43 设计模式中的观察者模式 信号与槽函数不是C 43 43 标准代码 xff0c 是QT特有的 xff0c 最终通过moc meta Object Complier 进
  • 关于约瑟夫环问题的思考(数组做法)

    这几天做题时碰见了一个很有意思的问题 xff0c 也是一个十分经典问题 约瑟夫环问题 问题很简单 xff0c 就是有n个人围成一个圈 xff0c 每隔m个人就自杀一个 xff0c 直到剩下最后一个人为止 xff0c 问最后剩下的最后一个人是
  • Windows Powershell相关(历史命令、命令)

    Powershell取证 历史命令 xff1a win10 powershell的命令历史记录存储在 span class token operator span USERPROFILE span class token operator
  • 符合ASTM标准的雨流计数法及其不同的改进方法

    随着研究的深入 xff0c 人们发现采用时间序列计算载荷谱太麻烦了 xff0c 处理的工作量太大 xff0c 我们不需要将每个时刻点的载荷都做运算 xff0c 疲劳计算只需要提供幅值 均值和循环次数 xff0c 鉴于此发展出了很多不同的计数
  • 对载荷谱进行雨流计数的几个主要步骤(以四点雨流计数为例)

    对载荷谱进行雨流计数的几个主要步骤 xff08 以四点雨流计数为例 xff09 滤除小幅值 Hysteresis Filtering 峰谷滤波 Peak Valley Filtering 离散化 Discretization 四点法雨流计数
  • bigdecimal乘法_Java BigDecimal乘法()方法与示例

    bigdecimal乘法 BigDecimal类的multiple 方法 BigDecimal Class multiply method Syntax 句法 xff1a public BigDecimal multiply BigDeci
  • 侯捷老师C++学习笔记——大气编程(上)

    本课程要有一点点C或C 43 43 的基础 xff0c 学习效果会更好哦 侯捷老师讲的特别通透 xff0c 听完收获很大 Lesson1 简介 课程基础 xff1a 曾经学过某种面向过程的编程语言 procedural language 知
  • 侯捷老师C++学习笔记——大气编程(下)

    侯捷老师C 43 43 课程下半部分 本课程是对之前课程中所提的一些东西的补充 xff0c 以及C 43 43 11新特性的一些讲解 Lesson1 介绍 本课程会讲的内容 xff1a 泛型编程深入探索面向对象继承关系所形成的的对象模型 x
  • JS基础-22-HTTP和HTTPS协议

    HTTP与HTTPS 一 前言 xff1a 先来观察这两张图 xff0c 第一张访问域名http www 12306 cn xff0c 谷歌浏览器提示不安全链接 xff0c 第二张是https kyfw 12306 cn otn regis
  • Spring架构图

    1 xff0e 核心容器模块 核心容器提供Spring框架的基本功能 xff0c 包括Core Beans Context EL模块 Core模块封装了框架依赖的最底层部分 xff0c 包括资源访问 类型转换及一些常用工具类 Beans模块
  • Spring Boot 中的日志

    文章目录 一 日志的输出1 1 日志等级划分1 2 日志输出操作1 3 日志等级设置 二 日志的存储三 SpringBoot 中的日志框架四 lombok 原理 当一个项目报错以后 xff0c 如何快速的定位错误的原因 xff0c 找到解决
  • face_recognition人脸检测

    文章目录 原理一 效果预览二 实现过程 原理 face recognition是最简单的人脸识别库 xff0c 该模型的准确率为 99 38 代码仅需要三行 xff1a span class token keyword import spa
  • python自动化运维第一步-利用psutil模块获取服务器信息

    文章目录 1 简易版演示 2 不成熟版演示 初学python不久 xff0c 尝试使用python写一些简单脚本 1 简易版 shell居多 span class token keyword import span os total mem
  • 判断链表是否有环(Java)

    快慢指针 xff0c 如果有环 xff0c 两指针一定会相遇 注意 xff1a 空链表和一个元素的链表直接返回false 如果没环 xff0c 快指针一定会先到null xff0c 所以只需判断快指针是否为null 注意空指针异常 xff0
  • Nginx学习笔记06——Nginx反向代理

    正向代理和反向代理 正向代理 用户和外网不能互通 xff0c 通过代理服务器将用户请求发送给外网 反向代理 用户和nginx是互通的 xff0c 用户和应用服务器是不互通的 xff0c 用户发送请求到nginx xff0c nginx作为代
  • Python调用adb shell

    在Android开发中 xff0c ADB xff08 Android Debug Bridge xff09 是一个非常重要的工具 它可以让我们通过命令行或者其他的客户端与安装了ADB驱动的Android设备进行通信 xff0c 并进行一些
  • c语言幂函数_C ++中的幂函数

    c语言幂函数 C 43 43 幂函数 C 43 43 power functions Power functions are used to calculate the powers like raise to power square r
  • 深度强化学习-DQN算法原理与代码

    DQN算法是DeepMind团队提出的一种深度强化学习算法 xff0c 在许多电动游戏中达到人类玩家甚至超越人类玩家的水准 xff0c 本文就带领大家了解一下这个算法 xff0c 论文和代码的链接见下方 论文 xff1a Human lev
  • 一文整理简单的Ajax请求知识,看了你还会不懂? -JavaWeb终篇

    写在前面 xff1a 我是一名大一专科生 xff0c 热爱Java xff0c 刚自学完JavaWeb阶段 xff0c 这篇文章是对Ajax的总结 xff0c 写作不易 xff0c 转载请声明 本文若有些内容出错请大佬指点 这篇文章需要有一
  • 【Jetson Nano学习笔记】Ubuntu18.04 上安装Nodejs、Hexo、nginx、配置到github(ARM版本)

    Nodejs有很多版本 xff0c 按照不同的操作系统 不同的处理器 xff0c 下载安装对应版本 一 去官网下载ARMv8版本的压缩包 xff08 Jetson Nano的处理器是ARM57 xff0c 基于ARMv8的核 xff09 英