分类 IT 下的文章

转自: 一个人在路上

一、安装cups服务
1、apt-get install cups avahi-daemon -y

2、安装驱动
HP驱动:
apt-get install hplip -y
爱普生驱动:
apt-get install printer-driver-gutenprint
兄弟驱动:
apt-get install printer-driver-brlaser

3、systemctl restart cups

二、修改配置文件
1、
找到:Listen localhost:631
改成:Listen 0.0.0.0:631
2、
找到下面的字段:

Show shared printers on the local network.
Browsing On
BrowseLocalProtocols dnssd

改成下面的字段:

Show shared printers on the local network.
Browsing On
allow 192.168.0.*
BrowseAllow all
BrowseAddressLocalProtocols CUPS dnssd
BrowseAddress @LOCAL

3、添加允许IP

Restrict access to the server...

Order allow,deny
Allow 192.168.5.*

4、添加允许IP

Order allow,deny
Allow 192.168.5.*

5、添加允许IP

Order allow,deny
Allow 192.168.5.*

6、添加允许IP

Restrict access to configuration files...

AuthType Default
Require user @SYSTEM
Order allow,deny
Allow 192.168.5.*

7、添加允许IP

Order deny,allow
Allow 192.168.5.*
三、重启服务
systemctl cups restart

四、进入后台
http:/192.168.5.250:631
添加打印机输入用户名密码,要输入root用户和密码

转自:一个人在路上

h96max 以前出差常驻刷centos挂载硬盘当存储使用,现在回家用不到,准备给孩子买个打印机安装cups,放一个不住的屋子使用,也不需要网线,手机可以直接打印,准备实施。
一、必备工具:
至少 8GB SD 卡和 SD 读卡器
Balena Etcher - SD 卡刷机工具
Jock rk3318 Multitool 镜像,镜像:链接(用 7-zip 解压)
Multitool - RK3318/RK3328 电视盒维护的小而强大的图像。从这里下载

二、
打开balena刷入mutitool,拔掉内存卡,在重新插入,把armbian镜像放入FAT分区的images文件夹中

三、
内存卡插入机顶盒,插入USB键盘,通电开机。
从菜单中选择“Burn image to flash”,然后选择目标设备(通常是mmcblk2)和要刻录的映像;
等待该过程完成,然后从主菜单中选择“shutdown”;
拔下电源线和SD卡,然后重新插入电源线;
等待 10 秒,然后 LED 应开始闪烁,HDMI 将打开。第一次启动过程需要几分钟或更长时间,因为文件系统将被调整大小,所以请耐心等待登录提示。
首次启动时,系统会要求您输入所选root 用户的密码以及普通用户的名称和密码

四、
运行 rk3318-config。

sudo rk3318-config

选择安全的1.1GHz速度,不要选择任何eMMC选项,最后选择x88 PRO板。暂时不要重启。

命令来安装我们需要的东西:

sudo apt-mark hold linux-image-edge-rockchip64 linux-dtb-edge-rockchip64
sudo apt update && sudo apt install armbian-config libxcb1

祝贺。您已经(几乎)安装了 Armbian。您现在可以重新启动。

sudo reboot

五、
更换debian源,vim /etc/apt/sources.list,更改一下内容:

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free

deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free

deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free

保存后;

apt-get update

六、安装wifi驱动

cd /tmp
wget -O patch_wifi_kernel_5_15_16.tar.gz "https://drive.google.com/uc?export=download&id=15QExck5QJSDmX9CZRrFrut_ln4kp_n0v"

tar -xf patch_wifi_kernel_5_15_16.tar.gz
cp -R -f usr/* /usr
cp -R -f lib/* /lib

重启
七、
1、armbian-config 选择wifi使用(不推荐)
2、numtui 连接WIFI,配置静态IP(推荐)

以下是在 SQL Server 中查找 10公里内商家 的完整示例,包含 表结构设计空间索引创建查询优化方法


1. 数据表结构设计

-- 创建商家表,包含地理坐标列(Geography类型)
CREATE TABLE Merchants (
    MerchantID INT PRIMARY KEY IDENTITY(1,1),
    MerchantName NVARCHAR(100),
    Location GEOGRAPHY,  -- 使用Geography类型存储坐标
    Address NVARCHAR(200)
);

-- 插入示例数据(WGS84经纬度,SRID=4326)
INSERT INTO Merchants (MerchantName, Location, Address)
VALUES 
    ('商家A', GEOGRAPHY::Point(31.2304, 121.4737, 4326),   -- 上海坐标
    ('商家B', GEOGRAPHY::Point(31.2243, 121.4758, 4326),   -- 上海附近
    ('商家C', GEOGRAPHY::Point(39.9042, 116.4074, 4326);  -- 北京坐标(超出10公里)

2. 创建空间索引(关键性能优化)

CREATE SPATIAL INDEX SIndx_Merchants_Location 
ON Merchants(Location)  
USING GEOGRAPHY_GRID  
WITH (
  GRIDS = (MEDIUM, MEDIUM, MEDIUM, MEDIUM),  
  CELLS_PER_OBJECT = 16
);

3. 查询10公里内的商家

方法1:直接使用 STDistance

-- 定义用户当前位置(例如:上海中心坐标)
DECLARE @UserLocation GEOGRAPHY = GEOGRAPHY::Point(31.2304, 121.4737, 4326);

-- 查询10公里内的商家
SELECT 
    MerchantID,
    MerchantName,
    Address,
    @UserLocation.STDistance(Location) AS DistanceInMeters
FROM Merchants
WHERE 
    Location.STDistance(@UserLocation) <= 10000  -- 10公里 = 10,000米
ORDER BY DistanceInMeters;

方法2:利用空间索引优化范围过滤

-- 使用空间函数快速过滤大致范围(提高性能)
SELECT 
    MerchantID,
    MerchantName,
    Address,
    @UserLocation.STDistance(Location) AS DistanceInMeters
FROM Merchants
WHERE 
    Location.STIntersects(@UserLocation.STBuffer(10000)) = 1  -- 先筛选地理范围
    AND Location.STDistance(@UserLocation) <= 10000          -- 再精确计算
ORDER BY DistanceInMeters;

4. 查询结果示例

MerchantIDMerchantNameAddressDistanceInMeters
1商家A上海某地址0.0 (同一坐标)
2商家B上海附近地址约 800 米

关键说明

  1. 单位处理

    • STDistance 返回单位为米,直接比较 <= 10000 表示10公里。
    • 若需输入公里,需在代码中转换(如 10000 = 10 * 1000)。
  2. 空间索引的作用

    • 空间索引会将地理数据分块(GRIDS),显著加速范围过滤(尤其是数据量大的场景)。
    • 方法2通过 STBuffer(10000) 生成一个10公里的圆形区域,先用索引快速筛选可能的目标,再精确计算距离。
  3. 性能对比

    • 无索引:全表扫描,计算每条记录的 STDistance,性能随数据量线性下降。
    • 有索引:通过空间索引快速排除无关区域,性能提升可达数十倍。

5. 常见问题处理

  • 坐标格式验证
    确保插入的经纬度值合法(纬度范围:-90~90,经度范围:-180~180)。
  • 跨半球计算
    SQL Server 的 Geography 类型自动处理地球曲率和国际日期变更线,无需额外代码。
  • 动态参数传递
    可将用户坐标参数化(如通过应用程序传入),避免SQL注入:

    -- C# 示例参数化代码
    SqlCommand cmd = new SqlCommand(
      "SELECT ... WHERE Location.STDistance(@UserLocation) <= 10000",
      connection);
    cmd.Parameters.Add("@UserLocation", SqlDbType.Udt).Value = userGeoPoint;

通过上述方法,您可以高效地在 SQL Server 中实现地理围栏查询,适用于O2O、LBS等场景。

  • 先备份

    cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
  • 下载阿里云yum源

    curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  • 清空缓存并重新生成缓存

    sudo yum clean all
    sudo yum makecache