Fedora从安装到基本配置

系统简单介绍

这里先对Fedora做点介绍:
Fedora Linux 是由 Fedora 项目社区开发、红帽公司赞助,目标是创建一套新颖、多功能并且自由(开放源代码)的操作系统。Fedora是商业化的Red Hat Enterprise Linux发行版的上游源码。
Fedora对于用户而言,是一套功能完备、更新快速的免费操作系统;而对赞助者Red Hat公司而言,它是许多新技术的测试平台,被认为可用的技术最终会加入到Red Hat Enterprise Linux中。

Fedora大约每六个月发布新版本。

需要了解更多的话可以**百度百科**查看

系统安装

第一步
对于Linux系统的U盘安装工具推荐选用**Ventoy**.

第二步
Fedora官网找到下载自己想要安装的Fedora版本镜像文件
我自己下载安装的是Workstation版

:如果安装的是KDE版的在安装时需要注意的事项:
记得设置用户名和密码的时候要把下面的钩打上,不然创建的用户就不能使用sudo,需要在安装完成后修改 /etc/sudoers 文件,具体修改方法可以自行上网查找,或者上ArchWiki

第三步

  1. 用Ventoy制作好U盘,并将下载的Fedora镜像文件拷贝到制作好的U盘中;
  2. 重启进入BIOS,设置允许U盘启动;
  3. 再次重启时按F12(如果没有反应则具上百度查自己电脑的热键)进入到U盘启动盘中。
  4. 选择需要安装的系统Enter键进入到Live桌面;
  5. 进入到Live桌面后会有个窗口进行选择,这里可以选择先体验一下系统!如果不需要体验的话可以直接选择安装!

对于Fedora的一键安装并没有什么可以说的,非常简单方便,并不像Arch之类的需要自己手动安装,Fedora安装门槛几乎为零!

这里如果直接安装的话默认抹除全部数据,所以需要自定义分区的可以参考一下:

在”存储配置”中选择”自定义”后,点击”完成”就会进入分区界面。我们选择”标准分区”类型,将之前预留的分区点击”-“按钮进行删除,重新格式化。一般我们需要创建4个分区,可以根据需要适当增减:

  1. 根分区 /,用于系统相关的目录,最先挂载,其他分区也会挂载在根分区下,分配空间至少15G
  2. 启动分区 /boot,用于存放包含内核、ramdisk镜像以及bootloader配置文件和bootloader stage,分配空间至少512M(建议1G),也可以不单独设置分区
  3. ESP分区 /boot/efi,用于使用UEFI启动的ESP文件系统,分配空间至少200M(建议512M),如果是legacy only启动则没必要设置,如果是双系统我们可以公用windows已经分配好的ESP分区
  4. 主目录分区 /home,用于保存普通用户的目录文件,具体大小根据我们情况适当分配
  5. 交换分区 /swap,用于提供能够被作为虚拟内存的内存空间(交换文件swap file也能实现同样的效果,还能动态调整大小或者移除),分配空间一般是2倍内存大小,如果内存够大也可以不设置

到此Fedora的安装就已经完成了!

是不是非常的简单~~

系统基本配置

软件源配置

包管理系统 是在linux中自动安装、配制、卸载和升级软件包的工具组合,在各种发行版中有不同的软件包管理系统,主要分为红帽系的”RPM软件包管理系统”和Debian系的”dpkg软件包管理系统”。

我们通过配置本地的软件源,使用包管理器便可以获取线上仓库中的各种软件,不同的仓库一般包含不同的软件,可以根据需要配置多个仓库来满足使用需求。

1.添加RPMFusion源

一般发行版为了版权纠纷,在安装完成后的系统中会自带官方的软件源,官方软件源中包含自由软件和厂商自己开发的非自由软件。如果我们想获取一些非自由软件(部分受版权保护的解码器、商业软件),就需要手动配置第三方的软件源。

free仓库
sudo dnf install http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
non-free仓库
sudo dnf install http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

最后运行以下命令生成缓存:

sudo dnf makecache

当然Fedora也慢慢开始向官方仓库添加第三方的非自由软件支持,主要包括phracek-PyCharm、google-chrome、rpmfusion-nonfree-nvidia-driver、rpmfusion-nonfree-steam,默认都不开启,需要手动开启:

sudo dnf install fedora-workstation-repositories
sudo dnf config-manager --set-enabled [repository]
2.替换官方软件源

官方软件源一般架设在国外,国内获取速度较慢,所以一般需要手动将官方软件源切换到国内对应的镜像软件源,这里推荐中科大的ustc镜像源、清华的tuna镜像源。
:本文选用中科大USTC的源,USTC提供换源命令,不用自己改文件,非常适合懒人!

执行USTC提供的换源命令

sudo sed -e 's|^metalink=|#metalink=|g' \
         -e 's|^#baseurl=http://download.example/pub/fedora/linux|baseurl=https://mirrors.ustc.edu.cn/fedora|g' \
         -i.bak \
         /etc/yum.repos.d/fedora.repo \
         /etc/yum.repos.d/fedora-modular.repo \
         /etc/yum.repos.d/fedora-updates.repo \
         /etc/yum.repos.d/fedora-updates-modular.repo

最后执行以下命令生成缓存:

sudo dnf makecache

想要自己动手修改的也可以浏览器查找以下网站找到Fedora源来修改:

  1. USTC镜像站
  2. 清华镜像站

:镜像网站有很多不止这两个,这两个只是推荐,还有华为,阿里等…

3.flatpak包支持

在类UNIX系统中,一个版本的软件只会存在系统中一份,依赖于该软件的其他软件在安装时,需要先解决依赖安装上所有对应的依赖包(很多软件发行还依赖于linux发行版的不同版本)。如果你想像Windows下一样,一个软件打包好所有的资源和依赖,各个软件之间独立存在,我想你需要flatpak。flatpak之类的打包方式在linux中还属于新事物,很多软件都还没有支持,所以能安装的软件不多,一般都是一些商业软件。

以下命令安装flatpak:

sudo dnf install flatpak

添加flatpak的remote:

sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

删除remote:

sudo flatpak remote-delete flathub

对于faltpak的使用,如果不懂的话还请移步浏览器查找官网找教学!

4.snap包支持

snap包是Canonical公司维护的一种新的打包系统,类似于红帽维护的flatpak。
该网址为snap官网应用商店:https://snapcraft.io/store

输入命令安装snap:

sudo dnf install snap

安装软件中心的snap插件:

sudo dnf install gnome-software-snap
5.添加fedy源

fedy源可以方便在fedora上安装第三方软件,fedy为使用者准备了很多集成解决方案(比如mp3、Oracle Java),依赖于RPMFusion源。

sudo dnf install https://dl.folkswithhats.org/fedora/$(rpm -E %fedora)/RPMS/fedy-release.rpm
sudo dnf install fedy
系统配置修改
1.修改dnf配置

修改/etc/dnf/dnf.conf配置文件(如果没什么需求可以不改,默认的就挺好用)

[main]
#是否开启gpg校验
gpgcheck=1
# 允许保留多少旧内核包
installonly_limit=3
# 删除软件同时删除依赖包
clean_requirements_on_remove=True
# 查找最快镜像
fastestmirror=true
# 下载增量包
deltarpm=true
# 最大并发下载数量,在Fedora 35 中打开初始没有这项,可以不加
max_parallel_downloads=6

如果想使用dnf的图形化前端,可以安装dnfdragora:

sudo dnf install dnfdragora
2.修改SELinux配置

selinux是红帽系发行版自带的安全子系统,对于桌面版用户这个子系统意义不大,但是卸载不掉,只能完全禁用。

查看SELinux状态:

/usr/sbin/sestatus -v

如果状态是enabled,则代表SELinux开启,需要修改/etc/selinux/config配置文件,将SELINUX修改为disabled:

#这里编辑器使用vim,需要自行下载(如果想用好vim的话,更多的vim的使用与配置还请自行上网学习)
sudo dnf install vim
#用vim打开要编辑的配置文件,按i进入输入模式,修改完后按Esc,接着按住输入':'符号,再输入wq保存退出。
sudo vim /etc/selinux/config
#找到SELINUX=enabled,将enabled改成disabled,如下: 
SELINUX=disabled
3.家目录文件夹切换为英文

修改系统当前语言:

export LANG=en_US

通过命令修改主目录下的文件夹:

xdg-user-dirs-gtk-update

将语言环境修改回中文:

export LANG=zh_CN.UTF-8

还可以通过修改~/.config/user-dirs.dirs配置文件; 再或者通过”设置”=>”Region & Language”=>”语言”,将语言修改为英文后注销,重新登陆后会弹出窗口修改主目录文件夹,修改完之后将语言修改回中文,然后再注销登陆一次,弹出窗口选择不更改。

Gnome基本配置

相关资源

:以下网站对大陆网络访问速度非常慢!!!
Gnome主题资源: https://www.gnome-look.org
flat-remix-gtk主题资源: https://github.com/daniruiz/flat-remix-gtk
flat-remix-gnome主题资源: https://github.com/daniruiz/flat-remix-gnome
flat-remix icon主题资源: https://github.com/daniruiz/Flat-Remix
GNOME Shell extension: https://extensions.gnome.org/

主题配置

前提条件是先安装 Gnome-tweaks

sudo dnf install gnome-tweaks
安装字体

这里推荐NerdFonts,需要其他字体也可以自行百度下载安装!
下载好字体后解压到 /usr/share/fonts 刷新即可,之后就可以到gnome-tweaks选择更改字体了。
这里看个人喜好更改

使用主题

可以直接使用前面配置的fedy源的图形软件下载Theme
更换主题和字体一样,在gnome-tweaks里更换即可!!!
对应文件存放位置如图中提示:在这里插入图片描述

修改Grub主题

本人并未对grub主题进行更改…
我个人是按需更换主题、图标、光标、字体就足够了,其他的再安装插件方便使用!
如有需求可以参考:给你的GRUB安装狂拽酷炫掉炸天的主题

插件配置
1.安装 chrome-gnome-shell (Fedora 现在已经默认安装)
#如果没有安装的话,执行以下命令安装:
sudo dnf install chrome-gnome-shell
2.安装浏览器扩展 gnome-shell-integration

在firefox里进入 GNOME Shell Extensions 官网(下面是第一次进入的页面)
在这里插入图片描述
点击下划线链接进行安装~
这样之后,点击右上角的黑色小脚丫图标,以后点击就可以进入这个网站!
之后进入此网站页面长这样:在这里插入图片描述

3.安装 Dash to Dock

搜索栏里直接搜索即可
刚进去应该是OFF,把它点一下成ON,会自动提示安装(GNOME扩展都是这么安装的),需要设置配置的话,点击蓝色的配置图标即可

4.更多插件(推荐的插件)

以下插件仅个人推荐,还有更多好插件可以自行在插件商店寻找。以下的插件如有需要请按需安装:

  1. Applications Menu :为应用程序添加基于类别的菜单
  2. Auto Move Windows :在应用程序创建窗口时将其移动到特定工作区
  3. Extension List :从顶部面板的菜单轻松 启用 / 禁用 / 设置 GNOME shell 扩展
  4. GSConnect :实现手机与 Linux 电脑相互之间的文件传输以及消息同步等
  5. gTile :平铺窗口提高生产力
  6. Hide Top Bar :智能隐藏顶栏
  7. Improved Workspace Indicator :在面板上放置一个指示器以指示所在的工作空间,并且可以切换到另一个工作空间
  8. Lock Keys :当按下 Caps Lock 或 Num Lock 时,锁定键扩展会通知,并让你随时知道是否有任何一个按钮处于活动状态
  9. No Titlebar When Maximized :窗口最大化时隐藏顶部标题栏
  10. Places Status Indicator :添加菜单以快速导航系统中的位置
  11. Recent Items :在顶部面板上为最近使用的项目添加了一个图标
  12. Removable Drive Menu :用于访问和卸载可移动设备的状态菜单
  13. Screenshot Tool :方便地创建、复制、存储和上传截图
  14. Top Panel Workspace Scroll :通过滚动顶部面板来更改工作区
  15. Transparent Top Bar :使顶栏透明
  16. Transparent Top Bar (Adjustable transparency):设置顶栏透明度
  17. User Themes :主题插件
  18. Vitals :顶栏查看计算机的温度、电压、风扇速度、内存使用情况、处理器负载、系统资源、网络速度和存储统计信息
  19. Desktop Icons: Neo :将图标添加到桌面
  • 5
    点赞
  • 76
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个低功耗蓝牙广播包的代码解析例子,以 Nordic nRF5 SDK 为例: ``` #include <stdbool.h> #include <stdint.h> #include "nrf.h" #include "nordic_common.h" #include "boards.h" #include "nrf_delay.h" #include "nrf_gpio.h" #include "nrf_drv_clock.h" #include "nrf_drv_power.h" #include "nrf_drv_rng.h" #include "nrf_drv_saadc.h" #include "nrfx_wdt.h" #include "app_error.h" #include "app_timer.h" #include "app_util_platform.h" #include "ble_advdata.h" #include "ble_gap.h" #include "ble_nus.h" #include "ble_hci.h" #include "ble_conn_params.h" #include "ble_conn_state.h" #include "ble_db_discovery.h" #include "ble_hci.h" #include "nrf_ble_gatt.h" #include "nrf_ble_qwr.h" #include "nrf_ble_scan.h" #include "nrf_ble_lesc.h" #include "nrf_ble_conn_params.h" #include "nrf_ble_gq.h" #include "nrf_ble_ancs_c.h" #include "nrf_ble_ans_c.h" #include "nrf_ble_bms_c.h" #include "nrf_ble_cscs_c.h" #include "nrf_ble_gattc.h" #include "nrf_ble_ias_c.h" #include "nrf_ble_lbs_c.h" #include "nrf_ble_rscs_c.h" #include "nrf_ble_tps_c.h" #include "nrf_ble_wscs_c.h" #include "bsp_btn_ble.h" #define DEVICE_NAME "LEDBlinker" /**< Name of device. Will be included in the advertising data. */ #define MANUFACTURER_NAME "NordicSemiconductor" /**< Manufacturer. Will be passed to Device Information Service. */ #define APP_BLE_CONN_CFG_TAG 1 /**< A tag identifying the SoftDevice BLE configuration. */ #define APP_ADV_INTERVAL 1600 /**< The advertising interval (in units of 0.625 ms. This value corresponds to 1 sec). */ #define APP_ADV_DURATION 0 /**< The advertising duration (180 seconds) in units of 10 milliseconds. */ #define APP_BLE_OBSERVER_PRIO 3 /**< Application's BLE observer priority. You shouldn't need to modify this value. */ #define APP_BLE_CONN_CFG_TAG 1 /**< A tag identifying the SoftDevice BLE configuration. */ #define APP_FEATURE_NOT_SUPPORTED BLE_GATT_STATUS_ATTERR_APP_BEGIN + 2 /**< Reply when unsupported features are requested. */ static ble_gap_adv_params_t m_adv_params; /**< Parameters to be passed to the stack when starting advertising. */ static uint8_t m_adv_handle = BLE_GAP_ADV_SET_HANDLE_NOT_SET; /**< Advertising handle used to identify an advertising set. */ static uint8_t m_enc_advdata[BLE_GAP_ADV_SET_DATA_SIZE_MAX]; /**< Buffer for storing an encoded advertising set. */ static uint8_t m_enc_scandata[BLE_GAP_ADV_SET_DATA_SIZE_MAX]; /**< Buffer for storing an encoded advertising set. */ static void advertising_start(void) { ret_code_t err_code; err_code = sd_ble_gap_adv_start(m_adv_handle, APP_BLE_CONN_CFG_TAG); APP_ERROR_CHECK(err_code); } static void advertising_init(void) { ret_code_t err_code; ble_advdata_t advdata; ble_advdata_manuf_data_t manuf_data; manuf_data.company_identifier = 0xFFFF; manuf_data.data.p_data = (uint8_t *) "Hello"; manuf_data.data.size = 5; memset(&advdata, 0, sizeof(advdata)); advdata.name_type = BLE_ADVDATA_FULL_NAME; advdata.include_appearance = true; advdata.flags = BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE; advdata.p_manuf_specific_data = &manuf_data; memset(m_enc_advdata, 0, sizeof(m_enc_advdata)); memset(m_enc_scandata, 0, sizeof(m_enc_scandata)); err_code = ble_advdata_encode(&advdata, m_enc_advdata, &m_adv_params.adv_data.len); APP_ERROR_CHECK(err_code); err_code = sd_ble_gap_adv_data_set(m_adv_handle, m_enc_advdata, m_adv_params.adv_data.len, m_enc_scandata, m_adv_params.scan_rsp_data.len); APP_ERROR_CHECK(err_code); } static void gap_params_init(void) { ret_code_t err_code; ble_gap_conn_params_t gap_conn_params; err_code = sd_ble_gap_tx_power_set(BLE_GAP_TX_POWER_ROLE_ADV, m_adv_handle, 4); APP_ERROR_CHECK(err_code); err_code = sd_ble_gap_conn_params_get(&gap_conn_params); APP_ERROR_CHECK(err_code); gap_conn_params.min_conn_interval = MSEC_TO_UNITS(20, UNIT_1_25_MS); gap_conn_params.max_conn_interval = MSEC_TO_UNITS(75, UNIT_1_25_MS); gap_conn_params.slave_latency = 0; gap_conn_params.conn_sup_timeout = MSEC_TO_UNITS(4000, UNIT_10_MS); err_code = sd_ble_gap_conn_params_set(&gap_conn_params); APP_ERROR_CHECK(err_code); } int main(void) { ret_code_t err_code; err_code = nrf_drv_clock_init(); APP_ERROR_CHECK(err_code); nrf_drv_clock_lfclk_request(NULL); err_code = nrf_drv_power_init(NULL); APP_ERROR_CHECK(err_code); err_code = nrf_drv_rng_init(NULL); APP_ERROR_CHECK(err_code); err_code = app_timer_init(); APP_ERROR_CHECK(err_code); err_code = bsp_init(BSP_INIT_LED, NULL); APP_ERROR_CHECK(err_code); err_code = sd_ble_gap_adv_set_configure(&m_adv_handle, &m_enc_advdata[0], &m_adv_params, &m_enc_scandata[0]); APP_ERROR_CHECK(err_code); gap_params_init(); advertising_init(); advertising_start(); while (1) { // Do nothing. } } ``` 该例子使用了 Nordic nRF5 SDK,实现了一个低功耗蓝牙广播包的发送。在 `advertising_init()` 函数中,定义了广播包的参数和内容,使用 `ble_advdata_encode()` 函数将广播包编码成二进制数据,并通过 `sd_ble_gap_adv_data_set()` 函数设置广播包数据。在 `advertising_start()` 函数中,启动了广播传输。 需要注意的是,该例子使用了 Nordic nRF5 SDK,如果您使用其他的嵌入式平台和开发工具,代码会有所不同。但是,低功耗蓝牙广播包的实现原理是相同的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值