Linux国产操作系统,UCA-系统工程师学习必备技能,使用dpkg管理软件包、apt命令、内网获取依赖包及源码安装

news2024/12/29 11:06:31

 

目录

​编辑

1.使用dpkg管理软件包

2.apt命令

3.内网获取依赖包

4.源码安装


1.使用dpkg管理软件包

第一种方法当然可以上网搜索软件安装包,下载然后解压成软件。

第二种也就是我接下来要介绍的,dpkg 命令,dpkg 全称叫做debian package,想看参数可以如下:

root@uos~#: man dpkg
root@uos~#: dpkg -l
root@uos~#: dpkg -I 
root@uos~#: dpkg -c
root@uos~#: dpkg -i
root@uos~#: dpkg -L
root@uos~#: dokg -s

-l (小L)这个参数是表示列出软件包,dd deepin等开头的都是统信自主研发的安装包

-L(大L)这个参数是列出这个软件装了什么东西

-I 这个参数是表示查看软件包(information)

root@uos~#: dpkg -I /home/tang/Desktop/vsftpd_3.0.3-12_amd64.deb 

  

你会发现查看到了很多文件和源代码,包括官网信息、作者信息等。

-c 这个参数是检查一个.deb文件的内容。

-i 表示安装软件包,是一个安装命令。

-s 显示已安装包裹的信息,如果表示为install ok installed,那么就是装好了,如果没有那就是表示失败的,当然其中也是包括了其他信息,像架构、类型。

root@uos~#: dpkg -l(必须输入完整才能查询)
root@uos~#: dpkg -r vsftpd
root@uos~#: dpkg -P vsftpd

-r 和 -P 都是删除软件包的命令,但是-r 删除的只是软件,-P 才能把所有的配置文件删干净。

总而言之,dpkg只能安装一般的软件包,像其他复杂的、套娃式的软件包则难以满足需求。

2.apt命令

apt是安装命令,它是 advanced packaging tool,不会像dpkg那样有依赖性关系,他会自动形成依赖。

root@uos:~# apt install apache2^C
root@uos:~# ping www.baidu.com
root@uos:~# apt install apache2(出现报错,这是因为之前是用来dpkg,同一个项目不能apt和dpkg两个混用)
root@uos:~# dpkg -P apache2 apache2-bin(先卸,再装)
root@uos:~# apt install apache2

  

下面是卸后重装的,就成功啦。

  

接下来,就是介绍一下软件仓库

root@uos~#: vim /etc/apt/sources.list
root@uos~#: apt list | wc -l
root@uos~#: apt update
root@uos~#: apt install -y apache2(这个就不需要回答yes/no)

https://professional-packages.chinauos.com/ (索引仓库存放位置)desktop-professional eagle

这也是应用apt安装命令的必要前提。

接下来则是关于对apt安装命令下相应的卸载操作

root@uos~#: apt purge apache2(系统不会自动删依赖包)
root@uos~#: apt autoremove -y(包括依赖包都卸载完了)
root@uos~#: apt upgrade(慎用,生产一线要追求稳定)
root@uos~#: apt full-upgrade 
root@uos~#: apt install -f(强制安装)

可以通过

root@uos~#: apt search uos-bro
root@uos~#: apt install uos-browser-stable
root@uos~#: apt search nginx
root@uos~#: apt show nginx

3.内网获取依赖包

最好是在虚拟机上操作,新的系统内比较干净,依赖包比较少。

root@uos~#: ls -l /var/cache/apt/archives/

   

root@uos~#: apt clean(清除apt依赖包)
root@uos~#: apt install -d apache2

它不会真的把 apache2 装好,而是把软件包存到指定的位置,-d就是只下载包而不装包的意思

root@uos~#: mkdir /home/tangyimin/Desktop/apache2
root@uos~#: cp /var/cache/apt/archives/*.deb /home/tangyimin/Desktop/apache2
root@uos~#: dpkg -l | grep apache2
root@uos~#: dpkg -i /home/tangyimin/Desktop/apache2/*.deb
root@uos~#: dpkg -l | grep apache2

 

可以查看系统服务

root@uos~#: systemctl status apache2

 

 

4.源码安装

root@uos~#: ls -l /home/qin/Desktop/

nginx-1.14.2tar.gz就是我们要的源码包,它是直接打包安装,是直接给我们的。注意,源码包是不受操作系统限制的。难度大,但是可以选择的东西更多,更灵活更自由。

 

root@uos~#: tar xzvf /home/qin/Desktop/nginx-1.14.2.tar.gz -C /tmp/
root@uos~#: cd /tmp/nginx-1.14.2/
root@uos: /tmp/nginx-1.14.2# ll

  

其中README和configure这两个文件很关键。configure是可执行文件,也就是配置文件,也意味着在源码安装之前,我们需要对原码环境进行配置;README文件则会介绍软件的一些内容

root@uos: /tmp/nginx-1.14.2# vim README

 

 

但是它会显示说内容太多,建议你上官网查看。。。

root@uos: /tmp/nginx-1.14.2# configure

 

这个很遗憾,上面很多东西不一定看得懂,很多shell命令和参数,生成的变量,很多脚本是我们大学生目前很难理解的。

root@uos: /tmp/nginx-1.14.2# ./configure --help

 

 

如果想要知道其中的意思,建议上百度或者CSDN去寻求答案。

但是怎么才能使用或者操作才能有效地进行命令呢?

root@uos: /tmp/nginx-1.14.2# ./cnfigure --prefix=/opt/qinnginx
root@uos: /tmp/nginx-1.14.2# make install(最正经的安装)

make install安装就很快,因为就是把Linux下的文件转移到指定地点,所以速度就会很快。当然可以用ls -l来查看一下是否已经安装完毕了。

root@uos: /tmp/nginx-1.14.2# ls -l /opt/qinnginx/
root@uos: /tmp/nginx-1.14.2# cd /opt/qinnginx/
root@uos: /opt/qinnginx# ls -l

 

conf是所有的配置文件;html是所有的网页文件;logs是所有的日志文件;sbin是所有的命令。(此处不细讲)

root@uos: /opt/qinnginx/sbin# ./nginx
root@uos: /opt/qinnginx/sbin# ps aux | grep nginx

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/674252.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux系统编程:进程的管理和创建

目录 一. 什么是进程 二. Linux对进程的管理方法 2.1 PCB描述进程 2.2 进程的组织 2.3 进程的查看 三. 子进程的创建 3.1 子进程创建函数fork的使用 3.2 子进程创建的原理 四. 总结 一. 什么是进程 进程(process)是指计算机中已经存在并运行的…

动态规划 DP (一)

1.动态规划(Dynamic Programming,简称DP) 维基百科的定义说的很清楚: 动态规划不能解决所有的问题, 只能应用于有最优子结构的问题。例如背包问题、最长公共子序列问题、最短路径问题等。 最优子结构:局部…

Vue3通信方式之defineProps、defineEmits、useAttrs、插件mitt和v-model

目录 1、使用defineProps2、使用defineEmits接受自定义事件2.1原生DOM事件2.2自定义事件 3、全局事件总线(插件mitt)4、v-model5、useAttrs 1、使用defineProps props可以实现父子组件通信,在vue3中我们可以通过defineProps获取父组件传递的数据。且在组…

Opencv医学图片分割-以血管、胼胝体MR等分割为例

用到环境 1、pycharm community edition 2022.3.2 2、Python 3.10 后面应该会传代码到资源,比较需要的可以私信我。 总体设计 图1 扩展实验二“医学图像分割”流程图 ## 具体步骤 1. 导入OpenCV和NumPy库 2. 定义阈值分割方法threshold_segmentation,接…

spring框架-概述(spring特性、生命周期)(一)

文章目录 什么是springspring重要特性spring生命周期知识扩展 什么是spring Spring框架是一个开放源代码的J2EE应用程序框架,由Rod Johnson发起,是针对bean的生命周期进行管理的轻量级容器 ,是为了解决企业级编程开发中的复杂性,实现敏捷开发…

[进阶]网络通信:TCP通信-支持与多个客户端同时通信

目前我们开发的服务端程序,是否可以支持与多个客户端同时通信? 不可以的。因为服务端现在只有一个主线程,只能处理一个客户端的消息。 代码演示如下: 客户端: public class Client {public…

SpringBoot 异常处理的最佳实践

SpringBoot 异常处理的最佳实践 在 Web 开发中,异常处理是非常重要的一环。在 SpringBoot 框架中,异常处理方式有很多种,但是如何选择最佳实践呢?本文将介绍 SpringBoot 异常处理的最佳实践,并附带代码示例。 异常处理…

flutter - 编写 阿里云-金融级实名认证插件

项目中有实名认证的需求,用户上传身份证反正面,进行人脸核验,后台集成的是阿里云的金融级实名认证SDK,巧合的是阿里云没有packages 需要自己造轮子。 废话不多少,直接上代码: 新建项目 ProjectType Plugin…

网站图片优化技巧及最佳实践

💂 个人网站:【海拥】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 目录 前言使用适当的图片格式…

0017-TIPS-pawnyable : eBPF

原文 BPFの導入 検証器とJITコンパイラ eBPFのバグの悪用 题目下载 BPF介绍 BPF 在介绍eBPF之前,先介绍其前身BPF。 随着时代的发展,BPF的用途越来越广泛,扩展也越来越多。在重大更改后的BPF有时被称为eBPF(扩展BPF&#xff09…

路漫漫其修远兮,吾将上下而求索

路漫漫其修远兮,吾将上下而求索 一、坚定信念二、持之以恒地努力三、谦虚和学习的态度四、上下而求索也要遵循道德底线和原则五、建立合适的人际关系和互助机制六、坚定自己的信仰和信念七、个人经验与体会 路漫漫其修远兮,吾将上下而求索——这句话不仅…

python期末上机题:

1、编写Python程序,创建类Temperature,其包含成员变量degree(表示温度)以及实例方法ToHuaShiDu()和ToSheShiDu,并编写测试代码。 程序运行示例: 请输入摄氏温度:30 摄氏温度 30.0&#xff0…

栈和队列(一)

文章目录 顺序表,链表的有点和缺点链表顺序表 栈和队列栈的实现栈的应用(括号匹配问题) 顺序表,链表的有点和缺点 链表 优点: 1、任意位置插入删除,时间复杂度位O(1) 2、按需申请释放空间 缺点&#xff1a…

Prompt Engineering 面面观

作者:紫气东来 项目地址:https://zhuanlan.zhihu.com/p/632369186 一、概述 提示工程(Prompt Engineering),也称为 In-Context Prompting,是指在不更新模型权重的情况下如何与 LLM 交互以引导其行为以获得…

Latex长表格

示例一: 输出一个长表格的示例。 代码: \documentclass[jou,apacite]{apa6} \usepackage{multirow} \usepackage{array} \newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}} \usepackage{longtable}%\usepackage{showframe} % to visualize…

极致呈现系列之:Echarts漏斗图的流光溢彩

目录 什么是漏斗图漏斗图的特点及应用场景漏斗图的特点漏斗图常见的的应用场景: Echarts中漏斗的常用属性Vue3中创建漏斗图美化漏斗图样式 在数据分析和可视化中,我们经常需要比较不同阶段的数据比例或流程的渐进筛选过程。漏斗图作为一种专门用于展示这…

Qt使用技巧--定义Private类

如果查看Qt的源码,会发现很多类都会有一个***Private类。这是Qt用于封装私有操作的一种设计模式。 给出一个继承自QObject的Private类具体的实现: MyClass.h #include "QObject"class MyClassPrivate; class MyClass: public QObject{ Q_OB…

LangChain让LLM连接更多能力

随着LLM(Large language models )的发展,不仅仅出现了很多新的应用,一些开发框架也发展很快,典型的就是本文介绍的项目——LangChain,目前LangChain几乎一天一个版本,几个月时间Star数目已经49k…

<C++> C++11 Lambda表达式

C11 Lambda表达式 1.C98中的一个例子 在C98中&#xff0c;如果想要对一个数据集合中的元素进行排序&#xff0c;可以使用std::sort方法。 #include <algorithm> #include <functional> int main() {int array[] {4, 1, 8, 5, 3, 7, 0, 9, 2, 6};// 默认按照小于…

软考:软件工程:面向对象技术与UML,时序图,用例图,类对象,封装,继承,多态

软考&#xff1a;软件工程: 提示&#xff1a;系列被面试官问的问题&#xff0c;我自己当时不会&#xff0c;所以下来自己复盘一下&#xff0c;认真学习和总结&#xff0c;以应对未来更多的可能性 关于互联网大厂的笔试面试&#xff0c;都是需要细心准备的 &#xff08;1&#…