Fedora 38 安装 perl-JSON RPM 包步骤(含依赖问题解决及附安装包)
<span data-cke-copybin-start="1"><span data-cke-copybin-start="1"></span></span><p><strong><span id="cke_bm_210S"> perl-JSON</span></strong> 是一个 <strong>Perl 语言的模块</strong>,它的作用是让 Perl 程序能够 <strong>轻松地处理 JSON 格式的数据</strong>。</p>
<hr>
<h3>一、先确认你系统是 Fedora 38</h3>
<p>这个包名字里有个 <code>fc38</code>,意思就是专门给 <strong>Fedora 38</strong> 用的。你得先确定你装的确实是 <strong>Fedora 38</strong>,不然可能装不上或者出问题。</p>
<p>你可以在终端里输入:</p>
<div class="cke_widget_wrapper cke_widget_block cke_widget_codeSnippet cke_widget_selected" data-cke-display-name="代码段" data-cke-filter="off" data-cke-widget-id="8" data-cke-widget-wrapper="1">
<pre class="cke_widget_element" data-cke-widget-data="%7B%22code%22%3A%22cat%20%2Fetc%2Ffedora-release%22%2C%22classes%22%3Anull%7D" data-cke-widget-keep-attr="0" data-cke-widget-upcasted="1" data-widget="codeSnippet"><code class="hljs">cat /etc/fedora-release</code></pre>
<span class="cke_reset cke_widget_drag_handler_container"><img width="15" height="15" class="cke_reset cke_widget_drag_handler lazyload" title="点击并拖拽以移动" data-cke-widget-drag-handler="1" data-src="https://img2024.cnblogs.com/blog/609922/202508/609922-20250824102851173-530984714.gif"></span></div>
<p>如果显示的是类似 <code>Fedora Linux release 38 (Thirty Eight)</code>,那就对啦。</p>
<hr>
<h3>二、下载这个 RPM 文件(如果你还没下载)</h3>
<p>你提到的文件名是:</p>
<p><strong>perl-JSON-4.10-2.fc38.noarch.rpm安装包下载:<strong><span class="cke_widget_wrapper cke_widget_inline cke_widget_csdnlink cke_widget_wrapper_link-info cke_widget_selected" data-cke-display-name="a" data-cke-filter="off" data-cke-widget-id="7" data-cke-widget-wrapper="1">https://pan.quark.cn/s/f60e512e1494</span></strong></strong><br>
</p>
<p>如果你还没有这个文件,得先去搞到它,比如:</p>
<ul>
<li>
<p>去 Fedora 官方软件仓库或者 RPM Find搜索下载,</p>
</li>
<li>
<p>或者别人发给你了这个文件,已经放在你的电脑上了。</p>
</li>
</ul>
<p>假设你已经把这个 <code>.rpm</code>文件下载到了你的电脑里,比如在 <strong>“下载”文件夹</strong> 里。</p>
<hr>
<h3>三、打开终端</h3>
<p>按快捷键:</p>
<p><strong>Ctrl + Alt + T</strong>(大多数情况)</p>
<p>或者自己在应用菜单里找到 <strong>“终端”</strong> 打开。</p>
<hr>
<h3>四、进入 RPM 文件所在的目录</h3>
<p>比如你把文件下载到了 <strong>下载</strong> 文件夹,那在终端里输入:</p>
<div class="cke_widget_wrapper cke_widget_block cke_widget_codeSnippet cke_widget_selected" data-cke-display-name="代码段" data-cke-filter="off" data-cke-widget-id="6" data-cke-widget-wrapper="1">
<pre class="cke_widget_element" data-cke-widget-data="%7B%22code%22%3A%22cd%20~%2F%E4%B8%8B%E8%BD%BD%22%2C%22classes%22%3Anull%7D" data-cke-widget-keep-attr="0" data-cke-widget-upcasted="1" data-widget="codeSnippet"><code class="hljs">cd ~/下载</code></pre>
<span class="cke_reset cke_widget_drag_handler_container"><img width="15" height="15" class="cke_reset cke_widget_drag_handler lazyload" title="点击并拖拽以移动" data-cke-widget-drag-handler="1" data-src="https://img2024.cnblogs.com/blog/609922/202508/609922-20250824102851173-530984714.gif"></span></div>
<blockquote>
<p>注意:“下载” 是中文系统下的文件夹名,如果是英文系统,可能是 <code>Downloads</code>,那命令就是:</p>
<div class="cke_widget_wrapper cke_widget_block cke_widget_codeSnippet cke_widget_selected" data-cke-display-name="代码段" data-cke-filter="off" data-cke-widget-id="5" data-cke-widget-wrapper="1">
<pre class="cke_widget_element" data-cke-widget-data="%7B%22code%22%3A%22cd%20~%2FDownloads%22%2C%22classes%22%3Anull%7D" data-cke-widget-keep-attr="0" data-cke-widget-upcasted="1" data-widget="codeSnippet"><code class="hljs">cd ~/Downloads</code></pre>
<span class="cke_reset cke_widget_drag_handler_container"><img width="15" height="15" class="cke_reset cke_widget_drag_handler lazyload" title="点击并拖拽以移动" data-cke-widget-drag-handler="1" data-src="https://img2024.cnblogs.com/blog/609922/202508/609922-20250824102851173-530984714.gif"></span></div>
</blockquote>
<p>你可以先用 <code>ls</code>命令看看这个目录下有没有 <code>perl-JSON-4.10-2.fc38.noarch.rpm</code>这个文件:</p>
<div class="cke_widget_wrapper cke_widget_block cke_widget_codeSnippet cke_widget_selected" data-cke-display-name="代码段" data-cke-filter="off" data-cke-widget-id="4" data-cke-widget-wrapper="1">
<pre class="cke_widget_element" data-cke-widget-data="%7B%22code%22%3A%22ls%22%2C%22classes%22%3Anull%7D" data-cke-widget-keep-attr="0" data-cke-widget-upcasted="1" data-widget="codeSnippet"><code class="hljs">ls</code></pre>
<span class="cke_reset cke_widget_drag_handler_container"><img width="15" height="15" class="cke_reset cke_widget_drag_handler lazyload" title="点击并拖拽以移动" data-cke-widget-drag-handler="1" data-src="https://img2024.cnblogs.com/blog/609922/202508/609922-20250824102851173-530984714.gif"></span></div>
<p>看到那个文件名就说明路径对了。</p>
<hr>
<h3>五、使用 rpm 命令安装</h3>
<p>在终端里输入下面的命令来安装这个 RPM 包:</p>
<div class="cke_widget_wrapper cke_widget_block cke_widget_codeSnippet cke_widget_selected" data-cke-display-name="代码段" data-cke-filter="off" data-cke-widget-id="3" data-cke-widget-wrapper="1">
<pre class="cke_widget_element" data-cke-widget-data="%7B%22code%22%3A%22sudo%20rpm%20-ivh%20perl-JSON-4.10-2.fc38.noarch.rpm%22%2C%22classes%22%3Anull%7D" data-cke-widget-keep-attr="0" data-cke-widget-upcasted="1" data-widget="codeSnippet"><code class="hljs">sudo rpm -ivh perl-JSON-4.10-2.fc38.noarch.rpm</code></pre>
<span class="cke_reset cke_widget_drag_handler_container"><img width="15" height="15" class="cke_reset cke_widget_drag_handler lazyload" title="点击并拖拽以移动" data-cke-widget-drag-handler="1" data-src="https://img2024.cnblogs.com/blog/609922/202508/609922-20250824102851173-530984714.gif"></span></div>
<ul>
<li>
<p><code>sudo</code>:表示你要用管理员权限(会让你输入密码,输入时不会显示,正常输完回车就行)</p>
</li>
<li>
<p><code>rpm</code>:是 Fedora 用来安装 RPM 包的工具</p>
</li>
<li>
<p><code>-i</code>:表示 install(安装)</p>
</li>
<li>
<p><code>-v</code>:表示显示详细信息(可以不加,但加了能看到更多过程)</p>
</li>
<li>
<p><code>-h</code>:表示显示安装进度条(也是可选的)</p>
</li>
</ul>
<hr>
<h3>六、如果遇到依赖问题</h3>
<p>有时候会报错说缺这个缺那个,比如:</p>
<blockquote>
<p>error: Failed dependencies:</p>
<p>某某包 is needed by perl-JSON...</p>
</blockquote>
<p>这就是说你还得先装其他的包。这种时候有两个选择:</p>
<h4>方法一(推荐):用 dnf 直接安装(更省事)</h4>
<p>其实这个 <code>perl-JSON</code>很可能是 Fedora 官方源里本来就有的包,你根本不用手动下 RPM,直接用 <code>dnf</code>装更方便,自动解决依赖:</p>
<p>在终端里输入:</p>
<div class="cke_widget_wrapper cke_widget_block cke_widget_codeSnippet cke_widget_selected" data-cke-display-name="代码段" data-cke-filter="off" data-cke-widget-id="2" data-cke-widget-wrapper="1">
<pre class="cke_widget_element" data-cke-widget-data="%7B%22code%22%3A%22sudo%20dnf%20install%20perl-JSON%22%2C%22classes%22%3Anull%7D" data-cke-widget-keep-attr="0" data-cke-widget-upcasted="1" data-widget="codeSnippet"><code class="hljs">sudo dnf install perl-JSON</code></pre>
<span class="cke_reset cke_widget_drag_handler_container"><img width="15" height="15" class="cke_reset cke_widget_drag_handler lazyload" title="点击并拖拽以移动" data-cke-widget-drag-handler="1" data-src="https://img2024.cnblogs.com/blog/609922/202508/609922-20250824102851173-530984714.gif"></span></div>
<p>如果系统里已经有这个包,它还会告诉你已经装了或者可以升级。</p>
<blockquote>
<p>推荐你先试试这个方法!除非你<strong>必须</strong>要用某个特定版本的 RPM 文件,才手动安装。</p>
</blockquote>
<h4>方法二(手动解决依赖):如果你坚持用这个 RPM 文件,又提示缺东西,那你就得一个个把缺的包也找来用 <code>rpm</code>安装,比较麻烦,不推荐新手这么干。</h4>
<hr>
<h3>七、验证是否安装成功</h3>
<p>安装完成后,你可以运行以下命令,看看 perl 能不能找到 JSON 模块:</p>
<div class="cke_widget_wrapper cke_widget_block cke_widget_codeSnippet cke_widget_selected" data-cke-display-name="代码段" data-cke-filter="off" data-cke-widget-id="1" data-cke-widget-wrapper="1">
<pre class="cke_widget_element" data-cke-widget-data="%7B%22code%22%3A%22perl%20-MJSON%20-e%20'print%20%5C%22OK%5C%5Cn%5C%22'%22%2C%22classes%22%3Anull%7D" data-cke-widget-keep-attr="0" data-cke-widget-upcasted="1" data-widget="codeSnippet"><code class="hljs">perl -MJSON -e 'print "OK\n"'</code></pre>
<span class="cke_reset cke_widget_drag_handler_container"><img width="15" height="15" class="cke_reset cke_widget_drag_handler lazyload" title="点击并拖拽以移动" data-cke-widget-drag-handler="1" data-src="https://img2024.cnblogs.com/blog/609922/202508/609922-20250824102851173-530984714.gif"></span></div>
<p>如果没有报错,还打印出了 <code>OK</code>,那就是安装成功啦!</p>
<p>或者你也可以用:</p>
<div class="cke_widget_wrapper cke_widget_block cke_widget_codeSnippet cke_widget_selected" data-cke-display-name="代码段" data-cke-filter="off" data-cke-widget-id="0" data-cke-widget-wrapper="1">
<pre class="cke_widget_element" data-cke-widget-data="%7B%22code%22%3A%22perl%20-e%20'use%20JSON%3B%20print%20%5C%22JSON%20%E6%A8%A1%E5%9D%97%E5%B7%B2%E5%AE%89%E8%A3%85%5C%5Cn%5C%22'%22%2C%22classes%22%3Anull%7D" data-cke-widget-keep-attr="0" data-cke-widget-upcasted="1" data-widget="codeSnippet"><code class="hljs">perl -e 'use JSON; print "JSON 模块已安装\n"'</code></pre>
<span class="cke_reset cke_widget_drag_handler_container"><img width="15" height="15" class="cke_reset cke_widget_drag_handler lazyload" title="点击并拖拽以移动" data-cke-widget-drag-handler="1" data-src="https://img2024.cnblogs.com/blog/609922/202508/609922-20250824102851173-530984714.gif"></span></div>
<p>没报错就说明 OK。</p>
<span data-cke-copybin-start="1"><span data-cke-copybin-end="1"></span></span><br><br>
来源:https://www.cnblogs.com/tonghu/p/19129200 感谢分享! 这个教程写得挺详细的,对新手很友好。不过我作为一个老 Fedora 用户,想补充几点个人经验:
[*]关于 dnf 和 rpm 的选择:其实 Fedora 38 现在还在支持期内,官方仓库里的 perl-JSON 版本应该够用了。除非你有特殊需求要锁定 4.10-2 这个版本,否则 sudo dnf install perl-JSON 确实是首选。dnf 会自动处理依赖,还能顺便更新仓库里的其他相关包,省心不少。
[*]手动 rpm 安装的小技巧:如果你确实要手动装 RPM,遇到依赖报错时,可以试试 sudo dnf install ./perl-JSON-4.10-2.fc38.noarch.rpm —— 注意那个 ./ 前缀,这样 dnf 会把它当成本地 RPM 来装,同时自动去仓库拉取缺失的依赖,比纯 rpm -ivh 聪明多了。
[*]验证环节再补充一个:除了你写的 perl 命令,也可以用 rpm -q perl-JSON 查已安装的版本号,或者用 rpm -ql perl-JSON 看看这个包到底装了哪些文件到系统里,有时候排查问题很有用。
[*]一个小提醒:从网盘下载的 RPM 文件,建议用 rpm -K perl-JSON-4.10-2.fc38.noarch.rpm 检查一下 GPG 签名是否通过,确保包没被篡改过。Fedora 官方的包都有签名,第三方来源的更要留个心眼。
另外 Fedora 38 的生命周期好像到 2024 年 5 月左右就结束了,如果还在用 38 的话可以考虑升级到 39 或 40,新版本的软件仓库更活跃,安全更新也更有保障。
总之帖子整理得很用心,特别是把中英文目录名的情况都考虑到了,这点很细致!收藏了,以后有新手问类似问题可以直接甩链接
頁:
[1]