安装cygserver失败的解决思路
我是计算机小白一枚,最近由于学习操作系统,开始接触了Linux和在其基础上的C编程。(和在windows的C编程一点都不一样!一点都不习惯!看见黑框就发怵!)
首先,由于要调用Linux下的诸多函数,比如fork(),所以想在像VS2019这样的IDE舒舒服服的写C,并跑出结果,这样的一条龙服务的梦想是彻底打消了。(好羡慕用MAC的同学,他们就不用花大把时间折腾这些玩意儿了)
所以Windows的怎么办呢?最直接的应该是装一个彻底的虚拟机吧(或许是换个苹果电脑更直接呢)
但是,因为马上要写作业,所以没那么时间去真正学习Linux操作系统的使用啦,所以更短平快的方法是:cygwin
新的问题
最近的一次作业,关于多进程之间通信/协调的(大概是这个意思吧),要用到semaphore,(嗯,有空了也写个操作系统的学习历程吧,本篇仅限于相关软件的磕磕撞撞,就不多说操作系统的概念啦)
当需要在多个process间传递semaphore时,那就必须要创建一个shared memory,并把semaphore存在shared memory里面(否则如果没有shared memory的话,同时进行的process互相依然是不会知道彼此的情况的)
而创建shared memory在C language中需要这四个函数:
shmget、shmat、shmdt、shmctl
但当我尝试运行代码时,到shmget这里,总是提示:function not implemented.
在经过多次探索后,我发现,可能是因为运行Cygwin的时候没有start cygserver。
然后我就按照网上的教程来啦:.在Cygwin中输入命令:
$cygserver-config
然后!
就报错啦:
提示如下:
$ cygserver-config
Generating /etc/cygserver.conf file
chown: 正在更改’/etc/cygserver.conf’ 的所有者: Permission denied
Warning: The following function requires administrator privileges!
Do you want to install cygserver as service?
(Say “no” if it’s already installed as service) (yes/no) yes
/usr/bin/cygserver-config:行181: cygrunsrv: 未找到命令
Installation of cygserver as service failed. Please check the
error messages you got. They might give a clue why it failed.
A good start is either you don’t have administrator privileges
or a missing cygrunsrv binary. Please check for both.
一脸懵逼的我,发现网上没人遇到我这样奇葩的问题(因为只要cygwin安装成功,cygserver的package就一定是有的)
无奈下,我只好运行setup。exe尝试安装了另外一个包:cygrunsrv (这个包博主目测是帮助debug的包,建议同学们有事没事都装一下,后面会看到:有奇效!)
安装cygrunsrv 后我再次运行,这次报错内容就不一样了:
error installing a service: openscmanager: win32 error 5
我在网上一搜,发现有人po出了这个错误的解决方法,一句话:用管理员模式运行cygwin
(原链接请看:https://blog.youkuaiyun.com/joy_91/article/details/23656889)
至此,终于安装好了,赶快写下了这篇,然后继续写作业啦
本文记录了一位计算机新手在安装Cygwin过程中遇到cygserver安装失败的问题,详细描述了从错误提示到解决问题的整个过程,包括尝试安装cygrunsrv包、以管理员权限运行Cygwin等步骤,最终成功安装并能运行相关C语言程序。
1553

被折叠的 条评论
为什么被折叠?



