Linux编程环境常见坑及解决方案

2023-12-25 04:48

本文主要是介绍Linux编程环境常见坑及解决方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、PIP 踩坑 

Ubuntu 中pip 10 更新后常常出现执行错误,通过下面方式可修复并升级到最新版本:
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
sudo python get-pip.py

二、Docker 踩坑 -- Docker常见问题及解决方法

1.kernel:unregister_netdevice:...

kernel:unregister_netdevice: waiting for lo to become free. Usage count = 1
这是个从 2014 年就出现了的老 BUG,不管是 RHEL、CentOS、Ubuntu 还是 Debian 都会碰到。这实际上是 Linux 内核的一个 BUG,目前仍未彻底解决,尽量升级最新的 Linux 内核吧。

2. Failed to get D-Bus connection:...

Failed to get D-Bus connection: Operation not permitted
在 Docker 中执行 systemctl 命令时触发这个错误,常见于使用 Systemd 的 Linux 发行版,比如 CentOS 7 全系列。

# systemctl start vsftpdFailed to get D-Bus connection: Operation not permitted

2.1 解决方案

方案1. 官方解决方案

官方解决方案 是创建一个中间镜像,然后在这个镜像基础上构建你的镜像。

方案2. 避免使用 systemctl 命令

比如直接通过 /usr/sbin/sshd & (& 表示后台运行程序)来执行命令。

方案3. 开启特权模式

可以在创建容器时通过 --privileged=true 开启特权模式。

创建容器:

# docker run -d --name centos7 --privileged=true centos7:last /usr/sbin/init

进入容器:

# docker exec -it centos7 /bin/bash

这样可以使用 systemctl 启动服务了。

2.2 根本原因

Docker 的设计理念是将每个容器作为宿主机上一个独立的主进程运行,在容器内部不运行后台服务。容器的生命周期是围绕一个主进程存在,所以正确的使用容器方法是将里面的服务运行在前台。

systemd 是主流 Linux 发行版默认的服务管理程序,取代了传统的 SystemV 风格服务管理。systemd 维护系统服务程序,需要特权才能会访问 Linux 内核。而容器并不是一个完整的操作系统,只有一个文件系统,而且启动时默认使用普通用户权限访问 Linux 内核,自然用不了 systemd!

因此,请遵守容器设计原则,一个容器里运行一个前台服务!

3. 当遇到不能解决的问题时,记得用命令
docker stop $(docker ps -aq)
docker rm -f $(docker ps -aq)
docker network prune
清理你的Docker网络。这将会清除你之前的网络并且给你一个全新的环境:

三、防火墙

    查看:service iptables status 或/etc/init.d/iptables status
    开启:service iptables start
    关闭:service iptables stop
四、翻墙

1、安装python

linux下的shadowsocks是采用python开发,因此需要先安装python,如已经安装可以跳过此步骤。

使用以下命令安装python :

sudo apt-get install python 
安装python的包管理器pip:

sudo apt-get install python-pip 
2、安装shadowsocks客户端

安装python-pip后,能通过pip直接安装客户端

sudo pip install shadowsocks 
3、配置shadowsocks客户端配置

新建一个配置文件shawdowsocks.json,根据你的shadowsocks服务提供的参数,配置以下相应的参数: 

“server”: “111.111.111.111”, 
“server_port”: 443, 
“local_port”: 1080, 
“password”: “111111”, 
“timeout”: 600, 
“method”: “rc4-md5” 

4、启动shadowsocks客户端服务

通过以下命令:

sudo sslocal -c shawdowsocks.json -d start

5.但在linux下并不能直接通过上述设置翻墙,因为shawdowsocks是socks 5代理,需要客户端配合才能翻墙。

apt-get install privoxy

6.配置privoxy 
vi /etc/privoxy/config

1336 forward-socks5t / 127.0.0.1:1080 .

监听接口默认开启的 localhost:8118

7.启动privoxy 
//开启privoxy 服务就行 
sudo service privoxy start 
// 设置http 和 https 全局代理 
export http_proxy=’http://localhost:8118’ 
export https_proxy=’https://localhost:8118’ 
test : 
wget www.google.com 
如果把返回200 ,并且把google的首页下载下来了,那就是成功了


这篇关于Linux编程环境常见坑及解决方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/534303

相关文章

Python中反转字符串的常见方法小结

《Python中反转字符串的常见方法小结》在Python中,字符串对象没有内置的反转方法,然而,在实际开发中,我们经常会遇到需要反转字符串的场景,比如处理回文字符串、文本加密等,因此,掌握如何在Pyt... 目录python中反转字符串的方法技术背景实现步骤1. 使用切片2. 使用 reversed() 函

在Linux中改变echo输出颜色的实现方法

《在Linux中改变echo输出颜色的实现方法》在Linux系统的命令行环境下,为了使输出信息更加清晰、突出,便于用户快速识别和区分不同类型的信息,常常需要改变echo命令的输出颜色,所以本文给大家介... 目python录在linux中改变echo输出颜色的方法技术背景实现步骤使用ANSI转义码使用tpu

linux hostname设置全过程

《linuxhostname设置全过程》:本文主要介绍linuxhostname设置全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录查询hostname设置步骤其它相关点hostid/etc/hostsEDChina编程A工具license破解注意事项总结以RHE

MySQL 中的 CAST 函数详解及常见用法

《MySQL中的CAST函数详解及常见用法》CAST函数是MySQL中用于数据类型转换的重要函数,它允许你将一个值从一种数据类型转换为另一种数据类型,本文给大家介绍MySQL中的CAST... 目录mysql 中的 CAST 函数详解一、基本语法二、支持的数据类型三、常见用法示例1. 字符串转数字2. 数字

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

Java 线程安全与 volatile与单例模式问题及解决方案

《Java线程安全与volatile与单例模式问题及解决方案》文章主要讲解线程安全问题的五个成因(调度随机、变量修改、非原子操作、内存可见性、指令重排序)及解决方案,强调使用volatile关键字... 目录什么是线程安全线程安全问题的产生与解决方案线程的调度是随机的多个线程对同一个变量进行修改线程的修改操

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

ModelMapper基本使用和常见场景示例详解

《ModelMapper基本使用和常见场景示例详解》ModelMapper是Java对象映射库,支持自动映射、自定义规则、集合转换及高级配置(如匹配策略、转换器),可集成SpringBoot,减少样板... 目录1. 添加依赖2. 基本用法示例:简单对象映射3. 自定义映射规则4. 集合映射5. 高级配置匹